diff options
-rw-r--r-- | chrome/browser/gtk/browser_window_gtk.cc | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/chrome/browser/gtk/browser_window_gtk.cc b/chrome/browser/gtk/browser_window_gtk.cc index 20d1570..01f2194 100644 --- a/chrome/browser/gtk/browser_window_gtk.cc +++ b/chrome/browser/gtk/browser_window_gtk.cc @@ -656,13 +656,16 @@ gboolean BrowserWindowGtk::OnCustomFrameExpose(GtkWidget* widget, } CairoCachedSurface* surface = theme_provider->GetSurfaceNamed( image_name, widget); - surface->SetSource(cr, - 0, - window->UseCustomFrame() ? 0 : -kCustomFrameBackgroundVerticalOffset); - cairo_pattern_set_extend(cairo_get_source(cr), CAIRO_EXTEND_REPEAT); - cairo_rectangle(cr, event->area.x, event->area.y, - event->area.width, event->area.height); - cairo_fill(cr); + if (event->area.y < surface->Height()) { + surface->SetSource(cr, + 0, + window->UseCustomFrame() ? 0 : -kCustomFrameBackgroundVerticalOffset); + // The frame background isn't tiled vertically. + cairo_pattern_set_extend(cairo_get_source(cr), CAIRO_EXTEND_REPEAT); + cairo_rectangle(cr, event->area.x, event->area.y, + event->area.width, surface->Height() - event->area.y); + cairo_fill(cr); + } if (theme_provider->HasCustomImage(IDR_THEME_FRAME_OVERLAY)) { CairoCachedSurface* theme_overlay = theme_provider->GetSurfaceNamed( |