From 26fb87f837117c219410e6ff5deff53cc3d8bfea Mon Sep 17 00:00:00 2001 From: Simon Hong Date: Mon, 16 Oct 2023 15:54:39 +0900 Subject: [PATCH] Refresh browser window theme colors fix https://github.com/brave/brave-browser/issues/31644 --- browser/ui/color/brave_color_id.h | 1 + browser/ui/color/brave_color_mixer.cc | 59 +++++++++++-------- browser/ui/color/color_palette.h | 24 +++++--- .../ui/tabs/brave_vertical_tab_color_mixer.cc | 10 ++-- .../ui/views/sidebar/sidebar_button_view.cc | 14 +++-- .../ui/views/sidebar/sidebar_button_view.h | 1 + .../ui/views/sidebar/sidebar_control_view.cc | 1 - browser/ui/views/sidebar/sidebar_item_view.cc | 25 ++++---- browser/ui/views/sidebar/sidebar_item_view.h | 14 +---- .../sidebar/sidebar_items_contents_view.cc | 9 +-- .../sidebar/sidebar_items_contents_view.h | 2 - .../sidebar/sidebar_items_scroll_view.cc | 4 -- .../views/sidebar/sidebar_items_scroll_view.h | 1 - browser/ui/views/tabs/brave_tab.cc | 1 + 14 files changed, 83 insertions(+), 83 deletions(-) diff --git a/browser/ui/color/brave_color_id.h b/browser/ui/color/brave_color_id.h index 775df66c4c25..a04735f665a2 100644 --- a/browser/ui/color/brave_color_id.h +++ b/browser/ui/color/brave_color_id.h @@ -53,6 +53,7 @@ E_CPONLY(kColorSidebarButtonBase) \ E_CPONLY(kColorSidebarButtonPressed) \ E_CPONLY(kColorSidebarItemBackgroundHovered) \ + E_CPONLY(kColorSidebarItemBackgroundActive) \ E_CPONLY(kColorSidebarItemDragIndicator) \ E_CPONLY(kColorSidebarSeparator) \ E_CPONLY(kColorSidebarPanelHeaderSeparator) \ diff --git a/browser/ui/color/brave_color_mixer.cc b/browser/ui/color/brave_color_mixer.cc index 7fa22a009ff1..97e912a25e87 100644 --- a/browser/ui/color/brave_color_mixer.cc +++ b/browser/ui/color/brave_color_mixer.cc @@ -31,9 +31,10 @@ namespace { // Location bar colors -const SkColor kPrivateLocationBarBgBase = SkColorSetRGB(0x0B, 0x07, 0x24); -const SkColor kDarkLocationBarBgBase = SkColorSetRGB(0x18, 0x1A, 0x21); -const SkColor kDarkLocationBarHoverBg = SkColorSetRGB(0x23, 0x25, 0x2F); +constexpr SkColor kPrivateLocationBarBgBase = kPrivateFrame; +constexpr SkColor kLightLocationBarBgBase = SK_ColorWHITE; +constexpr SkColor kDarkLocationBarBgBase = kDarkFrame; +constexpr SkColor kDarkLocationBarHoverBg = SkColorSetRGB(0x23, 0x25, 0x2F); // Copied from //chrome/browser/ui/omnibox//omnibox_theme.h // As below values are not changed for several years, it would be safe to copy. @@ -182,7 +183,10 @@ void AddChromeLightThemeColorMixer(ui::ColorProvider* provider, mixer[kColorTabBackgroundActiveFrameInactive] = {kColorToolbar}; mixer[kColorTabBackgroundInactiveFrameActive] = {ui::kColorFrameActive}; mixer[kColorTabBackgroundInactiveFrameInactive] = {ui::kColorFrameInactive}; - mixer[kColorTabForegroundActiveFrameActive] = {kLightToolbarIcon}; + mixer[kColorTabForegroundActiveFrameActive] = { + leo::GetColor(leo::Color::kColorTextPrimary, leo::Theme::kLight)}; + mixer[kColorTabForegroundActiveFrameInactive] = { + leo::GetColor(leo::Color::kColorTextPrimary, leo::Theme::kLight)}; mixer[kColorTabForegroundInactiveFrameActive] = { kColorTabForegroundActiveFrameActive}; mixer[kColorTabStrokeFrameActive] = {SkColorSetA(SK_ColorBLACK, 0.07 * 255)}; @@ -195,8 +199,8 @@ void AddChromeLightThemeColorMixer(ui::ColorProvider* provider, mixer[kColorToolbarTopSeparatorFrameActive] = {kColorToolbar}; mixer[kColorToolbarTopSeparatorFrameInactive] = {kColorToolbar}; mixer[ui::kColorFrameActive] = {kLightFrame}; - mixer[ui::kColorFrameInactive] = { - color_utils::HSLShift(kLightFrame, {-1, -1, 0.6})}; + // TODO(simonhong): Should we adjust frame color for inactive window? + mixer[ui::kColorFrameInactive] = {kLightFrame}; mixer[ui::kColorToggleButtonThumbOff] = {SK_ColorWHITE}; mixer[ui::kColorToggleButtonThumbOn] = {SkColorSetRGB(0x4C, 0x54, 0xD2)}; mixer[ui::kColorToggleButtonTrackOff] = {SkColorSetRGB(0xDA, 0xDC, 0xE8)}; @@ -226,7 +230,9 @@ void AddChromeDarkThemeColorMixer(ui::ColorProvider* provider, mixer[kColorTabBackgroundInactiveFrameActive] = {ui::kColorFrameActive}; mixer[kColorTabBackgroundInactiveFrameInactive] = {ui::kColorFrameInactive}; mixer[kColorTabForegroundActiveFrameActive] = { - SkColorSetRGB(0xF3, 0xF3, 0xF3)}; + leo::GetColor(leo::Color::kColorTextPrimary, leo::Theme::kDark)}; + mixer[kColorTabForegroundActiveFrameInactive] = { + leo::GetColor(leo::Color::kColorTextPrimary, leo::Theme::kDark)}; mixer[kColorTabForegroundInactiveFrameActive] = { kColorTabForegroundActiveFrameActive}; mixer[kColorTabStrokeFrameActive] = {kColorToolbar}; @@ -239,8 +245,7 @@ void AddChromeDarkThemeColorMixer(ui::ColorProvider* provider, mixer[kColorToolbarTopSeparatorFrameActive] = {kColorToolbar}; mixer[kColorToolbarTopSeparatorFrameInactive] = {kColorToolbar}; mixer[ui::kColorFrameActive] = {kDarkFrame}; - mixer[ui::kColorFrameInactive] = { - color_utils::HSLShift(kDarkFrame, {-1, -1, 0.6})}; + mixer[ui::kColorFrameInactive] = {kDarkFrame}; mixer[ui::kColorToggleButtonThumbOff] = {SK_ColorWHITE}; mixer[ui::kColorToggleButtonThumbOn] = {SkColorSetRGB(0x44, 0x36, 0xE1)}; mixer[ui::kColorToggleButtonTrackOff] = {SkColorSetRGB(0x5E, 0x61, 0x75)}; @@ -263,9 +268,9 @@ SkColor GetLocationBarBackground(bool dark, bool priv, bool hover) { return hover ? kDarkLocationBarHoverBg : kDarkLocationBarBgBase; } - return hover ? color_utils::AlphaBlend(SK_ColorWHITE, + return hover ? color_utils::AlphaBlend(kLightLocationBarBgBase, SkColorSetRGB(0xf3, 0xf3, 0xf3), 0.7f) - : SK_ColorWHITE; + : kLightLocationBarBgBase; } // Omnibox result bg colors @@ -357,6 +362,7 @@ void AddBraveLightThemeColorMixer(ui::ColorProvider* provider, SkColorSetRGB(0x21, 0x25, 0x29)}; mixer[kColorSidebarArrowBackgroundHovered] = {GetToolbarInkDropColor(mixer)}; mixer[kColorSidebarItemBackgroundHovered] = {GetToolbarInkDropColor(mixer)}; + mixer[kColorSidebarItemBackgroundActive] = {SkColorSetRGB(0xDB, 0xDE, 0xE2)}; mixer[kColorSidebarSeparator] = {SkColorSetRGB(0xE6, 0xE8, 0xF5)}; mixer[kColorSidebarPanelHeaderSeparator] = { leo::GetColor(leo::Color::kColorDividerSubtle, leo::Theme::kLight)}; @@ -369,19 +375,14 @@ void AddBraveLightThemeColorMixer(ui::ColorProvider* provider, mixer[kColorSidebarPanelHeaderButtonHovered] = { leo::GetColor(leo::Color::kColorGray60, leo::Theme::kLight)}; + mixer[kColorSidebarButtonBase] = {kColorToolbarButtonIcon}; if (HasCustomToolbarColor(key)) { // When custom color for toolbar is set, we can't depend on the color mode. - mixer[kColorSidebarButtonBase] = {PickColorContrastingToToolbar( - key, mixer, - leo::GetColor(leo::Color::kColorIconDefault, leo::Theme::kLight), - leo::GetColor(leo::Color::kColorIconDefault, leo::Theme::kDark))}; mixer[kColorSidebarButtonPressed] = {PickColorContrastingToToolbar( key, mixer, leo::GetColor(leo::Color::kColorIconDefault, leo::Theme::kLight), leo::GetColor(leo::Color::kColorIconDefault, leo::Theme::kDark))}; } else { - mixer[kColorSidebarButtonBase] = { - leo::GetColor(leo::Color::kColorIconDefault, leo::Theme::kLight)}; mixer[kColorSidebarButtonPressed] = { leo::GetColor(leo::Color::kColorIconInteractive, leo::Theme::kLight)}; } @@ -473,6 +474,7 @@ void AddBraveDarkThemeColorMixer(ui::ColorProvider* provider, SkColorSetRGB(0xF0, 0xF0, 0xFF)}; mixer[kColorSidebarArrowBackgroundHovered] = {GetToolbarInkDropColor(mixer)}; mixer[kColorSidebarItemBackgroundHovered] = {GetToolbarInkDropColor(mixer)}; + mixer[kColorSidebarItemBackgroundActive] = {SkColorSetRGB(0x0D, 0x0F, 0x14)}; mixer[kColorSidebarSeparator] = {SkColorSetRGB(0x5E, 0x61, 0x75)}; mixer[kColorSidebarPanelHeaderSeparator] = { leo::GetColor(leo::Color::kColorDividerSubtle, leo::Theme::kDark)}; @@ -489,19 +491,14 @@ void AddBraveDarkThemeColorMixer(ui::ColorProvider* provider, mixer[kColorSidebarPanelHeaderButtonHovered] = { leo::GetColor(leo::Color::kColorGray60, leo::Theme::kDark)}; + mixer[kColorSidebarButtonBase] = {kColorToolbarButtonIcon}; if (HasCustomToolbarColor(key)) { // When custom color for toolbar is set, we can't depend on the color mode. - mixer[kColorSidebarButtonBase] = {PickColorContrastingToToolbar( - key, mixer, - leo::GetColor(leo::Color::kColorIconDefault, leo::Theme::kLight), - leo::GetColor(leo::Color::kColorIconDefault, leo::Theme::kDark))}; mixer[kColorSidebarButtonPressed] = {PickColorContrastingToToolbar( key, mixer, leo::GetColor(leo::Color::kColorIconDefault, leo::Theme::kLight), leo::GetColor(leo::Color::kColorIconDefault, leo::Theme::kDark))}; } else { - mixer[kColorSidebarButtonBase] = { - leo::GetColor(leo::Color::kColorIconDefault, leo::Theme::kDark)}; mixer[kColorSidebarButtonPressed] = { leo::GetColor(leo::Color::kColorIconInteractive, leo::Theme::kDark)}; } @@ -566,6 +563,8 @@ void AddBravePrivateThemeColorMixer(ui::ColorProvider* provider, // Add private theme specific brave colors here. ui::ColorMixer& mixer = provider->AddMixer(); mixer[kColorForTest] = {kPrivateColorForTest}; + + mixer[kColorSidebarItemBackgroundActive] = {SkColorSetRGB(0x13, 0x05, 0x2A)}; } void AddBraveTorThemeColorMixer(ui::ColorProvider* provider, @@ -574,6 +573,8 @@ void AddBraveTorThemeColorMixer(ui::ColorProvider* provider, AddChromeDarkThemeColorMixer(provider, key); // Add tor theme specific brave colors here. + ui::ColorMixer& mixer = provider->AddMixer(); + mixer[kColorSidebarItemBackgroundActive] = {SkColorSetRGB(0x19, 0x04, 0x23)}; } void AddPrivateThemeColorMixer(ui::ColorProvider* provider, @@ -592,8 +593,12 @@ void AddPrivateThemeColorMixer(ui::ColorProvider* provider, mixer[kColorTabBackgroundActiveFrameInactive] = {kColorToolbar}; mixer[kColorTabBackgroundInactiveFrameActive] = {ui::kColorFrameActive}; mixer[kColorTabBackgroundInactiveFrameInactive] = {ui::kColorFrameInactive}; + + // TODO(simonhong): Get color from leo when it's available. mixer[kColorTabForegroundActiveFrameActive] = { - SkColorSetRGB(0xF3, 0xF3, 0xF3)}; + SkColorSetRGB(0xF5, 0xF3, 0xFF)}; + mixer[kColorTabForegroundActiveFrameInactive] = { + SkColorSetRGB(0xCC, 0xBE, 0xFE)}; mixer[kColorTabForegroundInactiveFrameActive] = { SkColorSetRGB(0xFF, 0xFF, 0xFF)}; mixer[kColorToolbar] = {kPrivateToolbar}; @@ -620,6 +625,12 @@ void AddTorThemeColorMixer(ui::ColorProvider* provider, mixer[kColorTabBackgroundActiveFrameInactive] = {kColorToolbar}; mixer[kColorTabBackgroundInactiveFrameActive] = {ui::kColorFrameActive}; mixer[kColorTabBackgroundInactiveFrameInactive] = {ui::kColorFrameInactive}; + + // TODO(simonhong): Get color from leo when it's available. + mixer[kColorTabForegroundActiveFrameActive] = { + SkColorSetRGB(0xFA, 0xF2, 0xFF)}; + mixer[kColorTabForegroundActiveFrameInactive] = { + SkColorSetRGB(0xE3, 0xB3, 0xFF)}; mixer[kColorToolbar] = {kPrivateTorToolbar}; mixer[kColorToolbarButtonIconInactive] = { color_utils::AlphaBlend(kDarkToolbarIcon, kPrivateTorToolbar, 0.3f)}; diff --git a/browser/ui/color/color_palette.h b/browser/ui/color/color_palette.h index a728a7c45fda..ce41dfb41752 100644 --- a/browser/ui/color/color_palette.h +++ b/browser/ui/color/color_palette.h @@ -13,18 +13,24 @@ constexpr SkColor kPrivateColorForTest = SkColorSetRGB(0xFF, 0x00, 0x00); constexpr SkColor kLightColorForTest = SkColorSetRGB(0xFF, 0xFF, 0xFF); constexpr SkColor kDarkColorForTest = SkColorSetRGB(0x00, 0x00, 0x00); -constexpr SkColor kLightToolbar = SkColorSetRGB(0xf3, 0xf3, 0xf3); -constexpr SkColor kLightFrame = SkColorSetRGB(0xd5, 0xd9, 0xdc); + +// TODO(simonhong): Use leo colors for frame/toolbar when it's ready. +constexpr SkColor kLightFrame = SkColorSetRGB(0xED, 0xEE, 0xF1); +constexpr SkColor kLightToolbar = SkColorSetRGB(0xF6, 0xF7, 0xF8); constexpr SkColor kLightToolbarIcon = SkColorSetRGB(0x42, 0x42, 0x42); -constexpr SkColor kDarkOmniboxText = SkColorSetRGB(0xff, 0xff, 0xff); constexpr SkColor kLightOmniboxText = SkColorSetRGB(0x42, 0x42, 0x42); -constexpr SkColor kDarkToolbar = SkColorSetRGB(0x30, 0x34, 0x43); -constexpr SkColor kDarkFrame = SkColorSetRGB(0x0C, 0x0C, 0x17); + +constexpr SkColor kDarkFrame = SkColorSetRGB(0x0D, 0x0F, 0x14); +constexpr SkColor kDarkToolbar = SkColorSetRGB(0x21, 0x24, 0x2A); constexpr SkColor kDarkToolbarIcon = SkColorSetRGB(0xed, 0xed, 0xed); -constexpr SkColor kPrivateFrame = SkColorSetRGB(0x19, 0x16, 0x2F); -constexpr SkColor kPrivateToolbar = SkColorSetRGB(0x32, 0x25, 0x60); -constexpr SkColor kPrivateTorFrame = SkColorSetRGB(0x19, 0x0E, 0x2A); -constexpr SkColor kPrivateTorToolbar = SkColorSetRGB(0x49, 0x2D, 0x58); +constexpr SkColor kDarkOmniboxText = SkColorSetRGB(0xff, 0xff, 0xff); + +constexpr SkColor kPrivateFrame = SkColorSetRGB(0x13, 0x05, 0x2A); +constexpr SkColor kPrivateToolbar = SkColorSetRGB(0x2A, 0x0D, 0x58); + +constexpr SkColor kPrivateTorFrame = SkColorSetRGB(0x19, 0x04, 0x23); +constexpr SkColor kPrivateTorToolbar = SkColorSetRGB(0x35, 0x0B, 0x49); + constexpr SkColor kBraveNewTabBackgroundDark = SkColorSetRGB(0x33, 0x36, 0x39); constexpr SkColor kBraveNewTabBackgroundLight = SkColorSetRGB(0x6B, 0x70, 0x84); diff --git a/browser/ui/tabs/brave_vertical_tab_color_mixer.cc b/browser/ui/tabs/brave_vertical_tab_color_mixer.cc index 00eb11f21ce8..72f5e79f63f3 100644 --- a/browser/ui/tabs/brave_vertical_tab_color_mixer.cc +++ b/browser/ui/tabs/brave_vertical_tab_color_mixer.cc @@ -7,6 +7,7 @@ #include "base/containers/fixed_flat_map.h" #include "brave/browser/ui/color/brave_color_id.h" +#include "brave/browser/ui/color/color_palette.h" #include "chrome/browser/ui/color/chrome_color_id.h" #include "ui/color/color_mixer.h" #include "ui/color/color_provider.h" @@ -71,8 +72,7 @@ void AddBraveVerticalTabLightThemeColorMixer(ui::ColorProvider* provider, static constexpr const auto kDefaultColorMap = base::MakeFixedFlatMap({ {kColorBraveVerticalTabActiveBackground, SK_ColorWHITE}, - {kColorBraveVerticalTabInactiveBackground, - SkColorSetRGB(0xf3, 0xf3, 0xf3)}, + {kColorBraveVerticalTabInactiveBackground, kLightToolbar}, {kColorBraveVerticalTabSeparator, SkColorSetA(SK_ColorBLACK, 0.05 * 255)}, {kColorBraveVerticalTabHeaderButtonColor, @@ -95,10 +95,8 @@ void AddBraveVerticalTabDarkThemeColorMixer(ui::ColorProvider* provider, static constexpr const auto kDefaultColorMap = base::MakeFixedFlatMap({ - {kColorBraveVerticalTabActiveBackground, - SkColorSetA(SK_ColorBLACK, 0.3 * 255)}, - {kColorBraveVerticalTabInactiveBackground, - SkColorSetRGB(0x30, 0x34, 0x43)}, + {kColorBraveVerticalTabActiveBackground, kDarkFrame}, + {kColorBraveVerticalTabInactiveBackground, kDarkToolbar}, {kColorBraveVerticalTabSeparator, SkColorSetA(SK_ColorWHITE, 0.1 * 255)}, {kColorBraveVerticalTabHeaderButtonColor, SK_ColorWHITE}, diff --git a/browser/ui/views/sidebar/sidebar_button_view.cc b/browser/ui/views/sidebar/sidebar_button_view.cc index d0b4a82815de..d1d6c283dd72 100644 --- a/browser/ui/views/sidebar/sidebar_button_view.cc +++ b/browser/ui/views/sidebar/sidebar_button_view.cc @@ -12,6 +12,8 @@ #include "ui/views/controls/focus_ring.h" #include "ui/views/controls/highlight_path_generator.h" #include "ui/views/view_class_properties.h" +#include "chrome/browser/ui/views/toolbar/toolbar_ink_drop_util.h" +#include "chrome/browser/ui/color/chrome_color_provider_utils.h" SidebarButtonView::SidebarButtonView(const std::u16string& accessible_name) { // Locate image at center of the button. @@ -25,15 +27,15 @@ SidebarButtonView::SidebarButtonView(const std::u16string& accessible_name) { // of sidebar control so that users can easily click buttons by throwing // the mouse cursor to the edge. SetProperty(views::kMarginsKey, gfx::Insets::VH(kMargin, 0)); - views::InstallRoundRectHighlightPathGenerator(this, - gfx::Insets::VH(0, kMargin), - /*highlight_radius*/ 8); - views::InkDrop::Get(this)->SetMode(views::InkDropHost::InkDropMode::ON); - views::InkDrop::Get(this)->SetHighlightOpacity(1.0f); - views::InkDrop::Get(this)->SetBaseColorId(kColorSidebarItemBackgroundHovered); SetHasInkDropActionOnClick(true); SetShowInkDropWhenHotTracked(true); + // Use same ink drop config with toolbar buttons. + ConfigureInkDropForToolbar(this); + views::InstallRoundRectHighlightPathGenerator(this, + gfx::Insets::VH(0, kMargin), + kHighlightRadius); + // Views resulting in focusable nodes later on in the accessibility tree need // to have an accessible name for screen readers to see what they are about. SetAccessibleName(accessible_name); diff --git a/browser/ui/views/sidebar/sidebar_button_view.h b/browser/ui/views/sidebar/sidebar_button_view.h index 0e9236083293..c81291d2d449 100644 --- a/browser/ui/views/sidebar/sidebar_button_view.h +++ b/browser/ui/views/sidebar/sidebar_button_view.h @@ -16,6 +16,7 @@ class SidebarButtonView : public views::ImageButton { static constexpr int kSidebarButtonSize = 36; static constexpr int kIconSize = 16; static constexpr int kMargin = 4; + static constexpr int kHighlightRadius = 8; explicit SidebarButtonView(const std::u16string& accessible_name); ~SidebarButtonView() override; diff --git a/browser/ui/views/sidebar/sidebar_control_view.cc b/browser/ui/views/sidebar/sidebar_control_view.cc index 575035f12f98..286f653277ec 100644 --- a/browser/ui/views/sidebar/sidebar_control_view.cc +++ b/browser/ui/views/sidebar/sidebar_control_view.cc @@ -265,7 +265,6 @@ bool SidebarControlView::IsBubbleWidgetVisible() const { void SidebarControlView::SetSidebarOnLeft(bool sidebar_on_left) { sidebar_on_left_ = sidebar_on_left; - sidebar_items_view_->SetSidebarOnLeft(sidebar_on_left); UpdateBackgroundAndBorder(); } diff --git a/browser/ui/views/sidebar/sidebar_item_view.cc b/browser/ui/views/sidebar/sidebar_item_view.cc index daff91e6c8d9..58121782cb5c 100644 --- a/browser/ui/views/sidebar/sidebar_item_view.cc +++ b/browser/ui/views/sidebar/sidebar_item_view.cc @@ -18,6 +18,11 @@ SidebarItemView::SidebarItemView(const std::u16string& accessible_name) SidebarItemView::~SidebarItemView() = default; +void SidebarItemView::SetActiveState(bool active) { + active_ = active; + SetHighlighted(active_); +} + void SidebarItemView::DrawHorizontalBorder(bool top) { DCHECK(!draw_horizontal_border_); @@ -38,17 +43,6 @@ void SidebarItemView::ClearHorizontalBorder() { void SidebarItemView::OnPaintBorder(gfx::Canvas* canvas) { ImageButton::OnPaintBorder(canvas); - // Draw item highlight - if (draw_highlight_) { - auto& bundle = ui::ResourceBundle::GetSharedInstance(); - - auto* image = bundle.GetImageSkiaNamed( - draw_highlight_on_left_ ? IDR_SIDEBAR_ITEM_HIGHLIGHT - : IDR_SIDEBAR_ITEM_HIGHLIGHT_RIGHT); - canvas->DrawImageInt( - *image, draw_highlight_on_left_ ? 0 : width() - image->width(), 0); - } - const ui::ColorProvider* color_provider = GetColorProvider(); if (draw_horizontal_border_ && color_provider) { constexpr float kHorizontalBorderWidth = 2; @@ -71,5 +65,14 @@ bool SidebarItemView::IsTriggerableEvent(const ui::Event& e) { event_utils::IsPossibleDispositionEvent(e); } +void SidebarItemView::StateChanged(ButtonState old_state) { + SidebarButtonView::StateChanged(old_state); + + // Set highlight state again. It seems DnD clears highlight state. + if (GetState() == views::Button::STATE_NORMAL) { + SetHighlighted(active_); + } +} + BEGIN_METADATA(SidebarItemView, SidebarButtonView) END_METADATA diff --git a/browser/ui/views/sidebar/sidebar_item_view.h b/browser/ui/views/sidebar/sidebar_item_view.h index 8411900ff3ff..2196b39caaf4 100644 --- a/browser/ui/views/sidebar/sidebar_item_view.h +++ b/browser/ui/views/sidebar/sidebar_item_view.h @@ -19,14 +19,7 @@ class SidebarItemView : public SidebarButtonView { SidebarItemView(const SidebarItemView&) = delete; SidebarItemView operator=(const SidebarItemView&) = delete; - void set_draw_highlight(bool draw) { draw_highlight_ = draw; } - void set_draw_highlight_on_left(bool draw_on_left) { - draw_highlight_on_left_ = draw_on_left; - } - - void set_paint_background_on_hovered(bool paint) { - paint_background_on_hovered_ = paint; - } + void SetActiveState(bool active); void DrawHorizontalBorder(bool top); void ClearHorizontalBorder(); @@ -34,11 +27,10 @@ class SidebarItemView : public SidebarButtonView { // views::ImageButton overrides: void OnPaintBorder(gfx::Canvas* canvas) override; bool IsTriggerableEvent(const ui::Event& e) override; + void StateChanged(ButtonState old_state) override; private: - bool draw_highlight_ = false; - bool draw_highlight_on_left_ = false; - bool paint_background_on_hovered_ = false; + bool active_ = false; bool draw_horizontal_border_ = false; bool draw_horizontal_border_top_ = false; }; diff --git a/browser/ui/views/sidebar/sidebar_items_contents_view.cc b/browser/ui/views/sidebar/sidebar_items_contents_view.cc index 0f571937b46a..1d6350b74e58 100644 --- a/browser/ui/views/sidebar/sidebar_items_contents_view.cc +++ b/browser/ui/views/sidebar/sidebar_items_contents_view.cc @@ -266,7 +266,6 @@ void SidebarItemsContentsView::AddItemView(const sidebar::SidebarItem& item, sidebar_model_->GetAllSidebarItems()[index].title), index); item_view->set_context_menu_controller(this); - item_view->set_paint_background_on_hovered(true); item_view->SetCallback( base::BindRepeating(&SidebarItemsContentsView::OnItemPressed, base::Unretained(this), item_view)); @@ -464,8 +463,7 @@ void SidebarItemsContentsView::UpdateItemViewStateAt(size_t index, SidebarItemView* item_view = GetItemViewAt(index); if (item.open_in_panel) { - item_view->set_draw_highlight(active); - item_view->set_draw_highlight_on_left(sidebar_on_left_); + item_view->SetActiveState(active); } if (sidebar::IsBuiltInType(item)) { @@ -584,10 +582,5 @@ bool SidebarItemsContentsView::IsBubbleVisible() const { return false; } -void SidebarItemsContentsView::SetSidebarOnLeft(bool sidebar_on_left) { - sidebar_on_left_ = sidebar_on_left; - UpdateAllBuiltInItemsViewState(); -} - BEGIN_METADATA(SidebarItemsContentsView, views::View) END_METADATA diff --git a/browser/ui/views/sidebar/sidebar_items_contents_view.h b/browser/ui/views/sidebar/sidebar_items_contents_view.h index ec2a2e3824c7..c2ae3acfe33d 100644 --- a/browser/ui/views/sidebar/sidebar_items_contents_view.h +++ b/browser/ui/views/sidebar/sidebar_items_contents_view.h @@ -85,7 +85,6 @@ class SidebarItemsContentsView : public views::View, bool IsBubbleVisible() const; void Update(); void SetDefaultImageAt(int index, const sidebar::SidebarItem& item); - void SetSidebarOnLeft(bool sidebar_on_left); private: friend class sidebar::SidebarBrowserTest; @@ -120,7 +119,6 @@ class SidebarItemsContentsView : public views::View, SidebarItemView* GetItemViewAt(size_t index); void LaunchEditItemDialog(); - bool sidebar_on_left_ = true; raw_ptr browser_ = nullptr; raw_ptr drag_controller_ = nullptr; raw_ptr view_for_context_menu_ = nullptr; diff --git a/browser/ui/views/sidebar/sidebar_items_scroll_view.cc b/browser/ui/views/sidebar/sidebar_items_scroll_view.cc index 7776c3c6ac9f..e43defddb033 100644 --- a/browser/ui/views/sidebar/sidebar_items_scroll_view.cc +++ b/browser/ui/views/sidebar/sidebar_items_scroll_view.cc @@ -564,9 +564,5 @@ void SidebarItemsScrollView::Update() { contents_view_->Update(); } -void SidebarItemsScrollView::SetSidebarOnLeft(bool sidebar_on_left) { - contents_view_->SetSidebarOnLeft(sidebar_on_left); -} - BEGIN_METADATA(SidebarItemsScrollView, views::View) END_METADATA diff --git a/browser/ui/views/sidebar/sidebar_items_scroll_view.h b/browser/ui/views/sidebar/sidebar_items_scroll_view.h index 61af7d966ae1..9d7cd26419b3 100644 --- a/browser/ui/views/sidebar/sidebar_items_scroll_view.h +++ b/browser/ui/views/sidebar/sidebar_items_scroll_view.h @@ -95,7 +95,6 @@ class SidebarItemsScrollView : public views::View, bool IsItemReorderingInProgress() const; bool IsBubbleVisible() const; void Update(); - void SetSidebarOnLeft(bool sidebar_on_left); private: friend class sidebar::SidebarBrowserTest; diff --git a/browser/ui/views/tabs/brave_tab.cc b/browser/ui/views/tabs/brave_tab.cc index 2a6377287b07..245ee9f25406 100644 --- a/browser/ui/views/tabs/brave_tab.cc +++ b/browser/ui/views/tabs/brave_tab.cc @@ -144,6 +144,7 @@ int BraveTab::GetWidthOfLargestSelectableRegion() const { void BraveTab::ActiveStateChanged() { Tab::ActiveStateChanged(); + title_->SetFontList(IsActive() ? active_tab_font_ : normal_font_); title_->SetFontList(IsActive() ? active_tab_font_ : normal_font_); // This should be called whenever the active state changes