From 88326488466cb74a05a96acfc5b4bc51961d692c Mon Sep 17 00:00:00 2001 From: Cosimo Cecchi Date: Sat, 27 Jun 2015 13:15:41 -0700 Subject: [PATCH] socket: don't call gtk_style_context_set_background() --- gtk/gtksocket.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/gtk/gtksocket.c b/gtk/gtksocket.c index b59deb1370..579a1f6c7b 100644 --- a/gtk/gtksocket.c +++ b/gtk/gtksocket.c @@ -34,6 +34,7 @@ #include "gtksizerequest.h" #include "gtkplug.h" #include "gtkprivate.h" +#include "gtkrender.h" #include "gtkdnd.h" #include "gtkdebug.h" #include "gtkintl.h" @@ -185,6 +186,18 @@ gtk_socket_finalize (GObject *object) G_OBJECT_CLASS (gtk_socket_parent_class)->finalize (object); } +static gboolean +gtk_socket_draw (GtkWidget *widget, + cairo_t *cr) +{ + gtk_render_background (gtk_widget_get_style_context (widget), cr, + 0, 0, + gtk_widget_get_allocated_width (widget), + gtk_widget_get_allocated_height (widget)); + + return GTK_WIDGET_CLASS (gtk_socket_parent_class)->draw (widget, cr); +} + static void gtk_socket_class_init (GtkSocketClass *class) { @@ -209,6 +222,7 @@ gtk_socket_class_init (GtkSocketClass *class) widget_class->key_press_event = gtk_socket_key_event; widget_class->key_release_event = gtk_socket_key_event; widget_class->focus = gtk_socket_focus; + widget_class->draw = gtk_socket_draw; /* We don't want to show_all the in-process plug, if any. */ @@ -398,9 +412,6 @@ gtk_socket_realize (GtkWidget *widget) gtk_widget_set_window (widget, window); gtk_widget_register_window (widget, window); - gtk_style_context_set_background (gtk_widget_get_style_context (widget), - window); - XGetWindowAttributes (GDK_WINDOW_XDISPLAY (window), GDK_WINDOW_XID (window), &xattrs); -- 2.30.2