Commit 44f37823 authored by Caroline Rising's avatar Caroline Rising Committed by Commit Bot

Make sure extensions menu buttons are visible against the menu's background.

Bug: 1107762
Change-Id: I8b5f928ac091811f4b7b6461acfbc1885ffc8093
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2313100Reviewed-by: default avatarDana Fried <dfried@chromium.org>
Commit-Queue: Caroline Rising <corising@chromium.org>
Cr-Commit-Position: refs/heads/master@{#791801}
parent 21660590
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
#include "chrome/browser/ui/views/extensions/extensions_menu_button.h" #include "chrome/browser/ui/views/extensions/extensions_menu_button.h"
#include "chrome/grit/generated_resources.h" #include "chrome/grit/generated_resources.h"
#include "ui/base/l10n/l10n_util.h" #include "ui/base/l10n/l10n_util.h"
#include "ui/gfx/color_utils.h"
#include "ui/gfx/paint_vector_icon.h" #include "ui/gfx/paint_vector_icon.h"
#include "ui/views/animation/ink_drop_host_view.h" #include "ui/views/animation/ink_drop_host_view.h"
#include "ui/views/controls/button/button.h" #include "ui/views/controls/button/button.h"
...@@ -121,7 +122,8 @@ const char* ExtensionsMenuItemView::GetClassName() const { ...@@ -121,7 +122,8 @@ const char* ExtensionsMenuItemView::GetClassName() const {
void ExtensionsMenuItemView::OnThemeChanged() { void ExtensionsMenuItemView::OnThemeChanged() {
views::View::OnThemeChanged(); views::View::OnThemeChanged();
const SkColor icon_color = const SkColor icon_color =
GetNativeTheme()->GetSystemColor(ui::NativeTheme::kColorId_MenuIconColor); GetAdjustedIconColor(GetNativeTheme()->GetSystemColor(
ui::NativeTheme::kColorId_MenuIconColor));
if (pin_button_) if (pin_button_)
pin_button_->set_ink_drop_base_color(icon_color); pin_button_->set_ink_drop_base_color(icon_color);
...@@ -138,11 +140,12 @@ void ExtensionsMenuItemView::UpdatePinButton() { ...@@ -138,11 +140,12 @@ void ExtensionsMenuItemView::UpdatePinButton() {
IsPinned() ? IDS_EXTENSIONS_MENU_UNPIN_BUTTON_TOOLTIP IsPinned() ? IDS_EXTENSIONS_MENU_UNPIN_BUTTON_TOOLTIP
: IDS_EXTENSIONS_MENU_PIN_BUTTON_TOOLTIP)); : IDS_EXTENSIONS_MENU_PIN_BUTTON_TOOLTIP));
SkColor unpinned_icon_color = SkColor unpinned_icon_color =
GetNativeTheme()->GetSystemColor(ui::NativeTheme::kColorId_MenuIconColor); GetAdjustedIconColor(GetNativeTheme()->GetSystemColor(
SkColor icon_color = IsPinned() ui::NativeTheme::kColorId_MenuIconColor));
? GetNativeTheme()->GetSystemColor( SkColor icon_color =
ui::NativeTheme::kColorId_ProminentButtonColor) IsPinned() ? GetAdjustedIconColor(GetNativeTheme()->GetSystemColor(
: unpinned_icon_color; ui::NativeTheme::kColorId_ProminentButtonColor))
: unpinned_icon_color;
views::SetImageFromVectorIconWithColor( views::SetImageFromVectorIconWithColor(
pin_button_, IsPinned() ? views::kUnpinIcon : views::kPinIcon, pin_button_, IsPinned() ? views::kUnpinIcon : views::kPinIcon,
kSecondaryIconSizeDp, icon_color); kSecondaryIconSizeDp, icon_color);
...@@ -163,3 +166,12 @@ ExtensionsMenuButton* ...@@ -163,3 +166,12 @@ ExtensionsMenuButton*
ExtensionsMenuItemView::primary_action_button_for_testing() { ExtensionsMenuItemView::primary_action_button_for_testing() {
return primary_action_button_; return primary_action_button_;
} }
SkColor ExtensionsMenuItemView::GetAdjustedIconColor(SkColor icon_color) const {
const SkColor background_color = GetNativeTheme()->GetSystemColor(
ui::NativeTheme::kColorId_BubbleBackground);
if (background_color != SK_ColorTRANSPARENT) {
return color_utils::BlendForMinContrast(icon_color, background_color).color;
}
return icon_color;
}
...@@ -61,6 +61,10 @@ class ExtensionsMenuItemView : public views::View, ...@@ -61,6 +61,10 @@ class ExtensionsMenuItemView : public views::View,
views::ImageButton* pin_button_for_testing() { return pin_button_; } views::ImageButton* pin_button_for_testing() { return pin_button_; }
private: private:
// Maybe adjust |icon_color| to assure high enough contrast with the
// background.
SkColor GetAdjustedIconColor(SkColor icon_color) const;
ExtensionsMenuButton* const primary_action_button_; ExtensionsMenuButton* const primary_action_button_;
std::unique_ptr<ToolbarActionViewController> controller_; std::unique_ptr<ToolbarActionViewController> controller_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment