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 84de8bda62613352f85ba48c93b42de0a3952cfd..f901637b6f07f6485e11ee036d5d0f3f4928f4da 100644 |
--- a/chrome/browser/ui/libgtkui/native_theme_gtk3.cc |
+++ b/chrome/browser/ui/libgtkui/native_theme_gtk3.cc |
@@ -21,8 +21,7 @@ namespace { |
void PaintWidget(SkCanvas* canvas, |
const gfx::Rect& rect, |
- const char* css_selector, |
- GtkStateFlags state) { |
+ GtkStyleContext* context) { |
SkBitmap bitmap; |
bitmap.allocN32Pixels(rect.width(), rect.height()); |
bitmap.eraseColor(0); |
@@ -33,9 +32,6 @@ void PaintWidget(SkCanvas* canvas, |
cairo_format_stride_for_width(CAIRO_FORMAT_ARGB32, rect.width())); |
cairo_t* cr = cairo_create(surface); |
- auto context = GetStyleContextFromCss(css_selector); |
- gtk_style_context_set_state(context, state); |
- |
gtk_render_background(context, cr, 0, 0, rect.width(), rect.height()); |
gtk_render_frame(context, cr, 0, 0, rect.width(), rect.height()); |
cairo_destroy(cr); |
@@ -338,7 +334,7 @@ void NativeThemeGtk3::PaintMenuPopupBackground( |
SkCanvas* canvas, |
const gfx::Size& size, |
const MenuBackgroundExtraParams& menu_background) const { |
- PaintWidget(canvas, gfx::Rect(size), "GtkMenu#menu", GTK_STATE_FLAG_NORMAL); |
+ PaintWidget(canvas, gfx::Rect(size), GetStyleContextFromCss("GtkMenu#menu")); |
} |
void NativeThemeGtk3::PaintMenuItemBackground( |
@@ -346,8 +342,23 @@ void NativeThemeGtk3::PaintMenuItemBackground( |
State state, |
const gfx::Rect& rect, |
const MenuItemExtraParams& menu_item) const { |
- PaintWidget(canvas, rect, "GtkMenu#menu GtkMenuItem#menuitem", |
- StateToStateFlags(state)); |
+ auto context = GetStyleContextFromCss("GtkMenu#menu GtkMenuItem#menuitem"); |
+ gtk_style_context_set_state(context, StateToStateFlags(state)); |
+ PaintWidget(canvas, rect, context); |
+} |
+ |
+void NativeThemeGtk3::PaintFrameTopArea( |
+ SkCanvas* canvas, |
+ State state, |
+ const gfx::Rect& rect, |
+ const FrameTopAreaExtraParams& frame_top_area) const { |
+ auto context = GetStyleContextFromCss("#headerbar.header-bar.titlebar"); |
+ RemoveBorders(context); |
+ gtk_style_context_set_state(context, |
+ frame_top_area.is_active |
+ ? GTK_STATE_FLAG_NORMAL |
+ : GTK_STATE_FLAG_BACKDROP); |
+ PaintWidget(canvas, rect, context); |
} |
} // namespace libgtkui |