diff options
Diffstat (limited to 'chrome/browser/gtk')
-rw-r--r-- | chrome/browser/gtk/bookmark_bar_gtk.cc | 10 | ||||
-rw-r--r-- | chrome/browser/gtk/browser_toolbar_gtk.cc | 4 | ||||
-rw-r--r-- | chrome/browser/gtk/find_bar_gtk.cc | 1 | ||||
-rw-r--r-- | chrome/browser/gtk/rounded_window.cc | 1 |
4 files changed, 15 insertions, 1 deletions
diff --git a/chrome/browser/gtk/bookmark_bar_gtk.cc b/chrome/browser/gtk/bookmark_bar_gtk.cc index 45cd4e0..eb16e2e 100644 --- a/chrome/browser/gtk/bookmark_bar_gtk.cc +++ b/chrome/browser/gtk/bookmark_bar_gtk.cc @@ -176,7 +176,8 @@ void BookmarkBarGtk::Init(Profile* profile) { g_signal_connect(instructions_, "drag-data-received", G_CALLBACK(&OnDragReceived), this); - gtk_widget_set_app_paintable(widget(), TRUE); + // Only paint in chrome theme mode. + gtk_widget_set_app_paintable(widget(), !theme_provider_->UseGtkTheme()); g_signal_connect(G_OBJECT(widget()), "expose-event", G_CALLBACK(&OnEventBoxExpose), this); @@ -489,6 +490,9 @@ void BookmarkBarGtk::Observe(NotificationType type, << "don't have a BookmarkModel. Taking no action."; } + // When using the GTK+ theme, let GTK optimize the background drawing. + gtk_widget_set_app_paintable(widget(), !theme_provider_->UseGtkTheme()); + // When using the GTK+ theme, we need to have the event box be visible so // buttons don't get a halo color from the background. When using Chromium // themes, we want to let the background show through the toolbar. @@ -891,6 +895,10 @@ void BookmarkBarGtk::OnDragReceived(GtkWidget* widget, gboolean BookmarkBarGtk::OnEventBoxExpose(GtkWidget* widget, GdkEventExpose* event, BookmarkBarGtk* bar) { + // We don't need to render the toolbar image in GTK mode. + if (bar->theme_provider_->UseGtkTheme()) + return FALSE; + // Paint the background theme image. cairo_t* cr = gdk_cairo_create(GDK_DRAWABLE(widget->window)); cairo_rectangle(cr, event->area.x, event->area.y, diff --git a/chrome/browser/gtk/browser_toolbar_gtk.cc b/chrome/browser/gtk/browser_toolbar_gtk.cc index ec25a9f..79bd45d 100644 --- a/chrome/browser/gtk/browser_toolbar_gtk.cc +++ b/chrome/browser/gtk/browser_toolbar_gtk.cc @@ -533,6 +533,10 @@ void BrowserToolbarGtk::ChangeActiveMenu(GtkWidget* active_menu, gboolean BrowserToolbarGtk::OnAlignmentExpose(GtkWidget* widget, GdkEventExpose* e, BrowserToolbarGtk* toolbar) { + // We don't need to render the toolbar image in GTK mode. + if (toolbar->theme_provider_->UseGtkTheme()) + return FALSE; + cairo_t* cr = gdk_cairo_create(GDK_DRAWABLE(widget->window)); cairo_rectangle(cr, e->area.x, e->area.y, e->area.width, e->area.height); cairo_clip(cr); diff --git a/chrome/browser/gtk/find_bar_gtk.cc b/chrome/browser/gtk/find_bar_gtk.cc index 0bf856a..503e1b8 100644 --- a/chrome/browser/gtk/find_bar_gtk.cc +++ b/chrome/browser/gtk/find_bar_gtk.cc @@ -735,6 +735,7 @@ gboolean FindBarGtk::OnExpose(GtkWidget* widget, GdkEventExpose* e, GdkDrawable* drawable = GDK_DRAWABLE(e->window); GdkGC* gc = gdk_gc_new(drawable); + gdk_gc_set_clip_rectangle(gc, &e->area); GdkColor color = bar->theme_provider_->GetBorderColor(); gdk_gc_set_rgb_fg_color(gc, &color); diff --git a/chrome/browser/gtk/rounded_window.cc b/chrome/browser/gtk/rounded_window.cc index b549a3f..a614634 100644 --- a/chrome/browser/gtk/rounded_window.cc +++ b/chrome/browser/gtk/rounded_window.cc @@ -148,6 +148,7 @@ gboolean OnRoundedWindowExpose(GtkWidget* widget, GdkDrawable* drawable = GDK_DRAWABLE(event->window); GdkGC* gc = gdk_gc_new(drawable); + gdk_gc_set_clip_rectangle(gc, &event->area); gdk_gc_set_rgb_fg_color(gc, &data->border_color); // Stroke the frame border. |