Merge pull request #15839 from brave/sidebar_right_aligned_border
Fixed sidebar's horizontal alignment is not properly set at startup
This commit is contained in:
@@ -10,6 +10,7 @@
|
||||
#include "brave/browser/ui/sidebar/sidebar_service_factory.h"
|
||||
#include "brave/browser/ui/sidebar/sidebar_utils.h"
|
||||
#include "brave/browser/ui/views/frame/brave_browser_view.h"
|
||||
#include "brave/browser/ui/views/side_panel/brave_side_panel.h"
|
||||
#include "brave/browser/ui/views/sidebar/sidebar_container_view.h"
|
||||
#include "brave/browser/ui/views/sidebar/sidebar_control_view.h"
|
||||
#include "brave/browser/ui/views/sidebar/sidebar_items_contents_view.h"
|
||||
@@ -88,10 +89,22 @@ class SidebarBrowserTest : public InProcessBrowserTest {
|
||||
sidebar_items_contents_view->OnItemPressed(item, event);
|
||||
}
|
||||
|
||||
SidebarControlView* GetSidebarControlView() const {
|
||||
return GetSidebarContainerView()->sidebar_control_view_;
|
||||
}
|
||||
|
||||
SidebarContainerView* GetSidebarContainerView() const {
|
||||
return static_cast<SidebarContainerView*>(controller()->sidebar());
|
||||
}
|
||||
|
||||
BraveSidePanel* GetSidePanel() const {
|
||||
return GetSidebarContainerView()->side_panel_;
|
||||
}
|
||||
|
||||
bool IsSidebarUIOnLeft() const {
|
||||
auto* sidebar_container_view =
|
||||
static_cast<SidebarContainerView*>(controller()->sidebar());
|
||||
return sidebar_container_view->sidebar_on_left_;
|
||||
return GetSidebarContainerView()->sidebar_on_left_ &&
|
||||
!GetSidePanel()->IsRightAligned() &&
|
||||
GetSidebarControlView()->sidebar_on_left_;
|
||||
}
|
||||
};
|
||||
|
||||
@@ -227,6 +240,26 @@ IN_PROC_BROWSER_TEST_F(SidebarBrowserTest, IterateBuiltInWebTypeTest) {
|
||||
EXPECT_EQ(0, tab_model()->active_index());
|
||||
}
|
||||
|
||||
// Test sidebar's initial horizontal option is set properly.
|
||||
IN_PROC_BROWSER_TEST_F(SidebarBrowserTest, PRE_InitialHorizontalOptionTest) {
|
||||
auto* prefs = browser()->profile()->GetPrefs();
|
||||
|
||||
// Check default horizontal option is left-sided.
|
||||
EXPECT_FALSE(prefs->GetBoolean(prefs::kSidePanelHorizontalAlignment));
|
||||
EXPECT_TRUE(IsSidebarUIOnLeft());
|
||||
|
||||
// Set right-sided for next testing.
|
||||
prefs->SetBoolean(prefs::kSidePanelHorizontalAlignment, true);
|
||||
}
|
||||
|
||||
IN_PROC_BROWSER_TEST_F(SidebarBrowserTest, InitialHorizontalOptionTest) {
|
||||
auto* prefs = browser()->profile()->GetPrefs();
|
||||
|
||||
// Check horizontal option is right-sided.
|
||||
EXPECT_TRUE(prefs->GetBoolean(prefs::kSidePanelHorizontalAlignment));
|
||||
EXPECT_FALSE(IsSidebarUIOnLeft());
|
||||
}
|
||||
|
||||
IN_PROC_BROWSER_TEST_F(SidebarBrowserTest, EventDetectWidgetTest) {
|
||||
auto* widget = GetEventDetectWidget();
|
||||
auto* service = SidebarServiceFactory::GetForProfile(browser()->profile());
|
||||
|
||||
@@ -211,7 +211,6 @@ BraveBrowserView::BraveBrowserView(std::unique_ptr<Browser> browser)
|
||||
prefs::kSidePanelHorizontalAlignment,
|
||||
base::BindRepeating(&BraveBrowserView::OnPreferenceChanged,
|
||||
base::Unretained(this)));
|
||||
UpdateSideBarHorizontalAlignment();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -266,6 +265,7 @@ sidebar::Sidebar* BraveBrowserView::InitSidebar() {
|
||||
// Start Sidebar UI initialization.
|
||||
DCHECK(sidebar_container_view_);
|
||||
sidebar_container_view_->Init();
|
||||
UpdateSideBarHorizontalAlignment();
|
||||
return sidebar_container_view_;
|
||||
}
|
||||
|
||||
|
||||
@@ -125,18 +125,16 @@ void SidebarContainerView::Init() {
|
||||
// Hide by default. Visibility will be controlled by show options later.
|
||||
DoHideSidebar(false);
|
||||
UpdateToolbarButtonVisibility();
|
||||
SetSidebarOnLeft(sidebar_on_left_);
|
||||
}
|
||||
|
||||
void SidebarContainerView::SetSidebarOnLeft(bool sidebar_on_left) {
|
||||
DCHECK(initialized_);
|
||||
|
||||
if (sidebar_on_left_ == sidebar_on_left)
|
||||
return;
|
||||
|
||||
sidebar_on_left_ = sidebar_on_left;
|
||||
|
||||
if (!initialized_)
|
||||
return;
|
||||
|
||||
DCHECK(sidebar_control_view_);
|
||||
sidebar_control_view_->SetSidebarOnLeft(sidebar_on_left_);
|
||||
GetEventDetectWidget()->SetSidebarOnLeft(sidebar_on_left_);
|
||||
|
||||
Reference in New Issue
Block a user