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 @@
#include "chrome/browser/ui/views/extensions/extensions_menu_button.h"
#include "chrome/grit/generated_resources.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/gfx/color_utils.h"
#include "ui/gfx/paint_vector_icon.h"
#include "ui/views/animation/ink_drop_host_view.h"
#include "ui/views/controls/button/button.h"
......@@ -121,7 +122,8 @@ const char* ExtensionsMenuItemView::GetClassName() const {
void ExtensionsMenuItemView::OnThemeChanged() {
views::View::OnThemeChanged();
const SkColor icon_color =
GetNativeTheme()->GetSystemColor(ui::NativeTheme::kColorId_MenuIconColor);
GetAdjustedIconColor(GetNativeTheme()->GetSystemColor(
ui::NativeTheme::kColorId_MenuIconColor));
if (pin_button_)
pin_button_->set_ink_drop_base_color(icon_color);
......@@ -138,10 +140,11 @@ void ExtensionsMenuItemView::UpdatePinButton() {
IsPinned() ? IDS_EXTENSIONS_MENU_UNPIN_BUTTON_TOOLTIP
: IDS_EXTENSIONS_MENU_PIN_BUTTON_TOOLTIP));
SkColor unpinned_icon_color =
GetNativeTheme()->GetSystemColor(ui::NativeTheme::kColorId_MenuIconColor);
SkColor icon_color = IsPinned()
? GetNativeTheme()->GetSystemColor(
ui::NativeTheme::kColorId_ProminentButtonColor)
GetAdjustedIconColor(GetNativeTheme()->GetSystemColor(
ui::NativeTheme::kColorId_MenuIconColor));
SkColor icon_color =
IsPinned() ? GetAdjustedIconColor(GetNativeTheme()->GetSystemColor(
ui::NativeTheme::kColorId_ProminentButtonColor))
: unpinned_icon_color;
views::SetImageFromVectorIconWithColor(
pin_button_, IsPinned() ? views::kUnpinIcon : views::kPinIcon,
......@@ -163,3 +166,12 @@ ExtensionsMenuButton*
ExtensionsMenuItemView::primary_action_button_for_testing() {
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,
views::ImageButton* pin_button_for_testing() { return pin_button_; }
private:
// Maybe adjust |icon_color| to assure high enough contrast with the
// background.
SkColor GetAdjustedIconColor(SkColor icon_color) const;
ExtensionsMenuButton* const primary_action_button_;
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