From ad63d1b59ee5da3b0a962d6ea315c032873b6b29 Mon Sep 17 00:00:00 2001 From: Cosimo Cecchi Date: Wed, 13 Jun 2012 19:38:42 -0400 Subject: [PATCH] toolbar: don't call gtk_style_context_set_background() GtkToolbar doesn't have its own GdkWindow to draw on (it calls gtk_widget_set_has_window(FALSE) in _init), but only an event window (input-only). Since gtk_widget_get_window() in that case will return the GdkWindow of the parent container, by calling gtk_style_context_set_background() here we're overriding the base background of the container instead of our. While in most cases this doesn't have any noticeable effect, since the toplevel GtkWindow will paint its background on top of it at the beginning of the draw cycle, when the classic window hierarchy is broken, such as when widgets are rendered through a clutter-gtk offscreen embedding, the background will become visible, which is undesirable. Fix this by having GtkToolbar not call gtk_style_context_set_background in its style_updated handler. --- gtk/gtktoolbar.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/gtk/gtktoolbar.c b/gtk/gtktoolbar.c index 5dfa206bd..3a389bd97 100644 --- a/gtk/gtktoolbar.c +++ b/gtk/gtktoolbar.c @@ -1879,11 +1879,6 @@ gtk_toolbar_style_updated (GtkWidget *widget) GTK_WIDGET_CLASS (gtk_toolbar_parent_class)->style_updated (widget); priv->max_homogeneous_pixels = -1; - - if (gtk_widget_get_realized (widget)) - gtk_style_context_set_background (gtk_widget_get_style_context (widget), - gtk_widget_get_window (widget)); - gtk_toolbar_update_button_relief (GTK_TOOLBAR (widget)); } -- 2.43.2