Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(55)

Unified Diff: chrome/browser/ui/libgtkui/native_theme_gtk3.cc

Issue 2701923002: Gtk3: Fix tab border color and --secondary-ui-md colors (Closed)
Patch Set: Move lambda to function in anonymous namespace Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/ui/libgtkui/gtk_ui.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/libgtkui/native_theme_gtk3.cc
diff --git a/chrome/browser/ui/libgtkui/native_theme_gtk3.cc b/chrome/browser/ui/libgtkui/native_theme_gtk3.cc
index 2b17b6d05075337faac1dd1c0b1f5546c6e2e459..7b8028a20ff6285325882817bc0021e6d36281b3 100644
--- a/chrome/browser/ui/libgtkui/native_theme_gtk3.cc
+++ b/chrome/browser/ui/libgtkui/native_theme_gtk3.cc
@@ -94,7 +94,16 @@ SkColor SkColorFromColorId(ui::NativeTheme::ColorId color_id) {
// FocusableBorder
case ui::NativeTheme::kColorId_FocusedBorderColor:
- return GetBorderColor("GtkEntry#entry:focus");
+ // GetBorderColor("GtkEntry#entry:focus") is correct here. The focus ring
+ // around widgets is usually a lighter version of the "canonical theme
+ // color" - orange on Ambiance, blue on Adwaita, etc. However, Chrome
+ // lightens the color we give it, so it would look wrong if we give it an
+ // already-lightened color. This workaround returns the theme color
+ // directly, taken from a selected table row. This has matched the theme
+ // color on every theme that I've tested.
+ return GetBgColor(
+ "GtkTreeView#treeview.view "
+ "GtkTreeView#treeview.view.cell:selected:focus");
case ui::NativeTheme::kColorId_UnfocusedBorderColor:
return GetBorderColor("GtkEntry#entry");
@@ -183,42 +192,48 @@ SkColor SkColorFromColorId(ui::NativeTheme::ColorId color_id) {
case ui::NativeTheme::kColorId_ButtonPressedShade:
return SK_ColorTRANSPARENT;
+ // BlueButton
case ui::NativeTheme::kColorId_BlueButtonEnabledColor:
return GetFgColor(
- "GtkButton#button.text-button.suggested-action GtkLabel");
+ "GtkButton#button.text-button.default.suggested-action GtkLabel");
case ui::NativeTheme::kColorId_BlueButtonDisabledColor:
return GetFgColor(
- "GtkButton#button.text-button.suggested-action:disabled "
+ "GtkButton#button.text-button.default.suggested-action:disabled "
"GtkLabel");
case ui::NativeTheme::kColorId_BlueButtonHoverColor:
return GetFgColor(
- "GtkButton#button.text-button.suggested-action:hover GtkLabel");
+ "GtkButton#button.text-button.default.suggested-action:hover "
+ "GtkLabel");
case ui::NativeTheme::kColorId_BlueButtonPressedColor:
return GetFgColor(
- "GtkButton#button.text-button.suggested-action:hover:active "
+ "GtkButton#button.text-button.default.suggested-action:hover:active "
"GtkLabel");
case ui::NativeTheme::kColorId_BlueButtonShadowColor:
return SK_ColorTRANSPARENT;
+ // ProminentButton
case ui::NativeTheme::kColorId_ProminentButtonColor:
- return GetBgColor("GtkButton#button.text-button.destructive-action");
+ return GetBgColor(
+ "GtkTreeView#treeview.view "
+ "GtkTreeView#treeview.view.cell:selected:focus");
case ui::NativeTheme::kColorId_TextOnProminentButtonColor:
return GetFgColor(
- "GtkButton#button.text-button.destructive-action GtkLabel");
+ "GtkTreeView#treeview.view "
+ "GtkTreeview#treeview.view.cell:selected:focus GtkLabel");
// Textfield
case ui::NativeTheme::kColorId_TextfieldDefaultColor:
- return GetFgColor("GtkEntry#entry");
+ return GetFgColor("GtkTextView#textview.view");
case ui::NativeTheme::kColorId_TextfieldDefaultBackground:
- return GetBgColor("GtkEntry#entry");
+ return GetBgColor("GtkTextView#textview.view");
case ui::NativeTheme::kColorId_TextfieldReadOnlyColor:
- return GetFgColor("GtkEntry#entry:disabled");
+ return GetFgColor("GtkTextView#textview.view:disabled");
case ui::NativeTheme::kColorId_TextfieldReadOnlyBackground:
- return GetBgColor("GtkEntry#entry:disabled");
+ return GetBgColor("GtkTextView#textview.view:disabled");
case ui::NativeTheme::kColorId_TextfieldSelectionColor:
- return GetSelectedTextColor("GtkEntry#entry");
+ return GetSelectedTextColor("GtkTextView#textview.view");
case ui::NativeTheme::kColorId_TextfieldSelectionBackgroundFocused:
- return GetSelectedBgColor("GtkEntry#entry");
+ return GetSelectedBgColor("GtkTextView#textview.view");
// Tooltips
case ui::NativeTheme::kColorId_TooltipBackground:
@@ -230,22 +245,27 @@ SkColor SkColorFromColorId(ui::NativeTheme::ColorId color_id) {
// Trees and Tables (implemented on GTK using the same class)
case ui::NativeTheme::kColorId_TableBackground:
case ui::NativeTheme::kColorId_TreeBackground:
- return GetBgColor("GtkTreeView#treeview.view .view.cell");
+ return GetBgColor(
+ "GtkTreeView#treeview.view GtkTreeView#treeview.view.cell");
case ui::NativeTheme::kColorId_TableText:
case ui::NativeTheme::kColorId_TreeText:
case ui::NativeTheme::kColorId_TableGroupingIndicatorColor:
- return GetFgColor("GtkTreeView#treeview.view .view.cell GtkLabel");
+ return GetFgColor(
+ "GtkTreeView#treeview.view GtkTreeView#treeview.view.cell GtkLabel");
case ui::NativeTheme::kColorId_TableSelectedText:
case ui::NativeTheme::kColorId_TableSelectedTextUnfocused:
case ui::NativeTheme::kColorId_TreeSelectedText:
case ui::NativeTheme::kColorId_TreeSelectedTextUnfocused:
return GetFgColor(
- "GtkTreeView#treeview.view .view.cell:selected:focus GtkLabel");
+ "GtkTreeView#treeview.view "
+ "GtkTreeView#treeview.view.cell:selected:focus GtkLabel");
case ui::NativeTheme::kColorId_TableSelectionBackgroundFocused:
case ui::NativeTheme::kColorId_TableSelectionBackgroundUnfocused:
case ui::NativeTheme::kColorId_TreeSelectionBackgroundFocused:
case ui::NativeTheme::kColorId_TreeSelectionBackgroundUnfocused:
- return GetBgColor("GtkTreeView#treeview.view .view.cell:selected:focus");
+ return GetBgColor(
+ "GtkTreeView#treeview.view "
+ "GtkTreeView#treeview.view.cell:selected:focus");
// Table Header
case ui::NativeTheme::kColorId_TableHeaderText:
@@ -257,50 +277,77 @@ SkColor SkColorFromColorId(ui::NativeTheme::ColorId color_id) {
// Results Table
case ui::NativeTheme::kColorId_ResultsTableNormalBackground:
- return GetBgColor("GtkEntry#entry");
+ return SkColorFromColorId(
+ ui::NativeTheme::kColorId_TextfieldDefaultBackground);
case ui::NativeTheme::kColorId_ResultsTableHoveredBackground:
- return color_utils::AlphaBlend(GetBgColor("GtkEntry#entry"),
- GetSelectedBgColor("GtkEntry#entry"),
- 0x80);
+ return color_utils::AlphaBlend(
+ SkColorFromColorId(
+ ui::NativeTheme::kColorId_TextfieldDefaultBackground),
+ SkColorFromColorId(
+ ui::NativeTheme::kColorId_TextfieldSelectionBackgroundFocused),
+ 0x80);
case ui::NativeTheme::kColorId_ResultsTableSelectedBackground:
- return GetSelectedBgColor("GtkEntry#entry");
+ return SkColorFromColorId(
+ ui::NativeTheme::kColorId_TextfieldSelectionBackgroundFocused);
case ui::NativeTheme::kColorId_ResultsTableNormalText:
case ui::NativeTheme::kColorId_ResultsTableHoveredText:
- return GetFgColor("GtkEntry#entry");
+ return SkColorFromColorId(
+ ui::NativeTheme::kColorId_TextfieldDefaultColor);
case ui::NativeTheme::kColorId_ResultsTableSelectedText:
- return GetSelectedTextColor("GtkEntry#entry");
+ return SkColorFromColorId(
+ ui::NativeTheme::kColorId_TextfieldSelectionColor);
case ui::NativeTheme::kColorId_ResultsTableNormalDimmedText:
case ui::NativeTheme::kColorId_ResultsTableHoveredDimmedText:
- return color_utils::AlphaBlend(GetFgColor("GtkEntry#entry"),
- GetBgColor("GtkEntry#entry"), 0x80);
+ return color_utils::AlphaBlend(
+ SkColorFromColorId(ui::NativeTheme::kColorId_TextfieldDefaultColor),
+ SkColorFromColorId(
+ ui::NativeTheme::kColorId_TextfieldDefaultBackground),
+ 0x80);
case ui::NativeTheme::kColorId_ResultsTableSelectedDimmedText:
- return color_utils::AlphaBlend(GetSelectedTextColor("GtkEntry#entry"),
- GetBgColor("GtkEntry#entry"), 0x80);
+ return color_utils::AlphaBlend(
+ SkColorFromColorId(ui::NativeTheme::kColorId_TextfieldSelectionColor),
+ SkColorFromColorId(
+ ui::NativeTheme::kColorId_TextfieldDefaultBackground),
+ 0x80);
case ui::NativeTheme::kColorId_ResultsTableNormalUrl:
case ui::NativeTheme::kColorId_ResultsTableHoveredUrl:
- return NormalURLColor(GetFgColor("GtkEntry#entry"));
+ return NormalURLColor(
+ SkColorFromColorId(ui::NativeTheme::kColorId_TextfieldDefaultColor));
case ui::NativeTheme::kColorId_ResultsTableSelectedUrl:
- return SelectedURLColor(GetSelectedTextColor("GtkEntry#entry"),
- GetSelectedBgColor("GtkEntry#entry"));
-
+ return SelectedURLColor(
+ SkColorFromColorId(ui::NativeTheme::kColorId_TextfieldSelectionColor),
+ SkColorFromColorId(
+ ui::NativeTheme::kColorId_TextfieldSelectionBackgroundFocused));
case ui::NativeTheme::kColorId_ResultsTablePositiveText:
- return color_utils::GetReadableColor(kPositiveTextColor,
- GetBgColor("GtkEntry#entry"));
+ return color_utils::GetReadableColor(
+ kPositiveTextColor,
+ SkColorFromColorId(
+ ui::NativeTheme::kColorId_TextfieldDefaultBackground));
case ui::NativeTheme::kColorId_ResultsTablePositiveHoveredText:
- return color_utils::GetReadableColor(kPositiveTextColor,
- GetBgColor("GtkEntry#entry:hover"));
+ return color_utils::GetReadableColor(
+ kPositiveTextColor,
+ SkColorFromColorId(
+ ui::NativeTheme::kColorId_TextfieldDefaultBackground));
case ui::NativeTheme::kColorId_ResultsTablePositiveSelectedText:
return color_utils::GetReadableColor(
- kPositiveTextColor, GetBgColor("GtkEntry#entry:selected"));
+ kPositiveTextColor,
+ SkColorFromColorId(
+ ui::NativeTheme::kColorId_TextfieldSelectionBackgroundFocused));
case ui::NativeTheme::kColorId_ResultsTableNegativeText:
- return color_utils::GetReadableColor(kNegativeTextColor,
- GetBgColor("GtkEntry#entry"));
+ return color_utils::GetReadableColor(
+ kNegativeTextColor,
+ SkColorFromColorId(
+ ui::NativeTheme::kColorId_TextfieldDefaultBackground));
case ui::NativeTheme::kColorId_ResultsTableNegativeHoveredText:
- return color_utils::GetReadableColor(kNegativeTextColor,
- GetBgColor("GtkEntry#entry:hover"));
+ return color_utils::GetReadableColor(
+ kNegativeTextColor,
+ SkColorFromColorId(
+ ui::NativeTheme::kColorId_TextfieldDefaultBackground));
case ui::NativeTheme::kColorId_ResultsTableNegativeSelectedText:
return color_utils::GetReadableColor(
- kNegativeTextColor, GetBgColor("GtkEntry#entry:selected"));
+ kNegativeTextColor,
+ SkColorFromColorId(
+ ui::NativeTheme::kColorId_TextfieldSelectionBackgroundFocused));
// Throbber
// TODO(thomasanderson): Render GtkSpinner directly.
@@ -343,22 +390,22 @@ NativeThemeGtk3::NativeThemeGtk3() {
// this point. We need the g_type_class magic to make sure the compiler
// doesn't optimize away this code.
g_type_class_unref(g_type_class_ref(gtk_button_get_type()));
+ g_type_class_unref(g_type_class_ref(gtk_entry_get_type()));
+ g_type_class_unref(g_type_class_ref(gtk_info_bar_get_type()));
g_type_class_unref(g_type_class_ref(gtk_label_get_type()));
- g_type_class_unref(g_type_class_ref(gtk_window_get_type()));
- g_type_class_unref(g_type_class_ref(gtk_link_button_get_type()));
- g_type_class_unref(g_type_class_ref(gtk_spinner_get_type()));
g_type_class_unref(g_type_class_ref(gtk_menu_get_type()));
+ g_type_class_unref(g_type_class_ref(gtk_menu_bar_get_type()));
g_type_class_unref(g_type_class_ref(gtk_menu_item_get_type()));
- g_type_class_unref(g_type_class_ref(gtk_entry_get_type()));
- g_type_class_unref(g_type_class_ref(gtk_info_bar_get_type()));
- g_type_class_unref(g_type_class_ref(gtk_tooltip_get_type()));
+ g_type_class_unref(g_type_class_ref(gtk_range_get_type()));
g_type_class_unref(g_type_class_ref(gtk_scrollbar_get_type()));
- g_type_class_unref(g_type_class_ref(gtk_toolbar_get_type()));
- g_type_class_unref(g_type_class_ref(gtk_text_view_get_type()));
- g_type_class_unref(g_type_class_ref(gtk_separator_get_type()));
- g_type_class_unref(g_type_class_ref(gtk_menu_bar_get_type()));
g_type_class_unref(g_type_class_ref(gtk_scrolled_window_get_type()));
- g_type_class_unref(g_type_class_ref(gtk_range_get_type()));
+ g_type_class_unref(g_type_class_ref(gtk_separator_get_type()));
+ g_type_class_unref(g_type_class_ref(gtk_spinner_get_type()));
+ g_type_class_unref(g_type_class_ref(gtk_text_view_get_type()));
+ g_type_class_unref(g_type_class_ref(gtk_toolbar_get_type()));
+ g_type_class_unref(g_type_class_ref(gtk_tooltip_get_type()));
+ g_type_class_unref(g_type_class_ref(gtk_tree_view_get_type()));
+ g_type_class_unref(g_type_class_ref(gtk_window_get_type()));
g_signal_connect_after(gtk_settings_get_default(), "notify::gtk-theme-name",
G_CALLBACK(OnThemeChanged), this);
« no previous file with comments | « chrome/browser/ui/libgtkui/gtk_ui.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698