| 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
|
|
|