Index: chrome/browser/ui/libgtkui/gtk_ui.cc |
diff --git a/chrome/browser/ui/libgtkui/gtk_ui.cc b/chrome/browser/ui/libgtkui/gtk_ui.cc |
index 36aa3405dddbcc963edea7cdcdcbc57be873f417..07fb16961ccad635205bfee98672846f82cd5540 100644 |
--- a/chrome/browser/ui/libgtkui/gtk_ui.cc |
+++ b/chrome/browser/ui/libgtkui/gtk_ui.cc |
@@ -242,11 +242,9 @@ const char* kUnknownContentType = "application/octet-stream"; |
// |
// Default tints. |
const color_utils::HSL kDefaultTintFrameIncognito = {-1, 0.2f, 0.35f}; |
+#if GTK_MAJOR_VERSION == 2 |
const color_utils::HSL kDefaultTintFrameIncognitoInactive = {-1, 0.3f, 0.6f}; |
- |
-#if GTK_MAJOR_VERSION == 3 |
-const color_utils::HSL kDefaultTintFrameInactive = {-1, -1, 0.75f}; |
-#endif // GTK_MAJOR_VERSION == 3 |
+#endif |
// Picks a button tint from a set of background colors. While |
// |accent_color| will usually be the same color through a theme, this |
@@ -879,6 +877,12 @@ void Gtk2UI::LoadGtkValues() { |
colors_[ThemeProperties::COLOR_TAB_THROBBER_WAITING] = |
native_theme_->GetSystemColor( |
ui::NativeTheme::kColorId_ThrobberWaitingColor); |
+ |
+#if GTK_MAJOR_VERSION > 2 |
+ colors_[ThemeProperties::COLOR_TOOLBAR_BOTTOM_SEPARATOR] = |
+ colors_[ThemeProperties::COLOR_DETACHED_BOOKMARK_BAR_SEPARATOR] = |
+ GetBorderColor("GtkToolbar.primary-toolbar.toolbar"); |
+#endif |
} |
void Gtk2UI::LoadCursorTheme() { |
@@ -921,58 +925,16 @@ void Gtk2UI::BuildFrameColors() { |
GetChromeStyleColor("incognito-inactive-frame-color", &temp_color); |
colors_[ThemeProperties::COLOR_FRAME_INCOGNITO_INACTIVE] = temp_color; |
#else |
- auto set_frame_color = [this](int color_id) { |
- // Render a GtkHeaderBar as our title bar, cropping out any curved edges |
- // on the left and right sides. Also remove the bottom border for good |
- // measure. |
- SkBitmap bitmap; |
- bitmap.allocN32Pixels(1, 1); |
- bitmap.eraseColor(0); |
- |
- static GtkWidget* menu = nullptr; |
- if (!menu) { |
- menu = gtk_menu_bar_new(); |
- gtk_widget_set_size_request(menu, 1, 1); |
- |
- GtkWidget* window = gtk_offscreen_window_new(); |
- gtk_container_add(GTK_CONTAINER(window), menu); |
- |
- gtk_widget_show_all(window); |
- } |
- |
- cairo_surface_t* surface = cairo_image_surface_create_for_data( |
- static_cast<unsigned char*>(bitmap.getAddr(0, 0)), CAIRO_FORMAT_ARGB32, |
- bitmap.width(), bitmap.height(), |
- cairo_format_stride_for_width(CAIRO_FORMAT_ARGB32, 1)); |
- cairo_t* cr = cairo_create(surface); |
- gtk_widget_draw(menu, cr); |
- cairo_destroy(cr); |
- cairo_surface_destroy(surface); |
- |
- switch (color_id) { |
- case ThemeProperties::COLOR_FRAME_INACTIVE: |
- bitmap = SkBitmapOperations::CreateHSLShiftedBitmap( |
- bitmap, kDefaultTintFrameInactive); |
- break; |
- case ThemeProperties::COLOR_FRAME_INCOGNITO: |
- bitmap = SkBitmapOperations::CreateHSLShiftedBitmap( |
- bitmap, kDefaultTintFrameIncognito); |
- break; |
- case ThemeProperties::COLOR_FRAME_INCOGNITO_INACTIVE: |
- bitmap = SkBitmapOperations::CreateHSLShiftedBitmap( |
- bitmap, kDefaultTintFrameIncognitoInactive); |
- break; |
- } |
- |
- bitmap.lockPixels(); |
- colors_[color_id] = bitmap.getColor(0, 0); |
- bitmap.unlockPixels(); |
- }; |
- |
- set_frame_color(ThemeProperties::COLOR_FRAME); |
- set_frame_color(ThemeProperties::COLOR_FRAME_INACTIVE); |
- set_frame_color(ThemeProperties::COLOR_FRAME_INCOGNITO); |
- set_frame_color(ThemeProperties::COLOR_FRAME_INCOGNITO_INACTIVE); |
+ // TODO(thomasanderson): Render a GtkHeaderBar directly. |
+ SkColor color_frame = GetBGColor(".headerbar.header-bar.titlebar"); |
+ SkColor color_frame_inactive = |
+ GetBGColor(".headerbar.header-bar.titlebar:backdrop"); |
+ colors_[ThemeProperties::COLOR_FRAME] = color_frame; |
+ colors_[ThemeProperties::COLOR_FRAME_INACTIVE] = color_frame_inactive; |
+ colors_[ThemeProperties::COLOR_FRAME_INCOGNITO] = |
+ color_utils::HSLShift(color_frame, kDefaultTintFrameIncognito); |
+ colors_[ThemeProperties::COLOR_FRAME_INCOGNITO_INACTIVE] = |
+ color_utils::HSLShift(color_frame_inactive, kDefaultTintFrameIncognito); |
#endif |
} |