diff options
author | Cosimo Cecchi <cosimoc@gnome.org> | 2015-06-03 18:21:16 -0700 |
---|---|---|
committer | Cosimo Cecchi <cosimoc@gnome.org> | 2015-07-01 16:09:22 -0700 |
commit | b7be29390fecce3a3919700cf18779c03ca08f06 (patch) | |
tree | ffd2966cf36b1b2afb102e4d57a7f4eb785b7d56 /gtk/gtkmenushell.c | |
parent | 828db3eca93df11308abce12ea30bb9e4d32a9a0 (diff) | |
download | gtk+-b7be29390fecce3a3919700cf18779c03ca08f06.tar.gz |
menushell: don't call gtk_style_context_set_background()
Diffstat (limited to 'gtk/gtkmenushell.c')
-rw-r--r-- | gtk/gtkmenushell.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/gtk/gtkmenushell.c b/gtk/gtkmenushell.c index e1ba138b65..80044ef3fe 100644 --- a/gtk/gtkmenushell.c +++ b/gtk/gtkmenushell.c @@ -66,6 +66,7 @@ #include "gtkmenuitemprivate.h" #include "gtkmenushellprivate.h" #include "gtkmnemonichash.h" +#include "gtkrender.h" #include "gtkwindow.h" #include "gtkwindowprivate.h" #include "gtkprivate.h" @@ -133,6 +134,8 @@ static void gtk_menu_shell_screen_changed (GtkWidget *widget, GdkScreen *previous_screen); static gboolean gtk_menu_shell_grab_broken (GtkWidget *widget, GdkEventGrabBroken *event); +static gboolean gtk_menu_shell_draw (GtkWidget *widget, + cairo_t *cr); static void gtk_menu_shell_add (GtkContainer *container, GtkWidget *widget); static void gtk_menu_shell_remove (GtkContainer *container, @@ -198,6 +201,7 @@ gtk_menu_shell_class_init (GtkMenuShellClass *klass) widget_class->enter_notify_event = gtk_menu_shell_enter_notify; widget_class->leave_notify_event = gtk_menu_shell_leave_notify; widget_class->screen_changed = gtk_menu_shell_screen_changed; + widget_class->draw = gtk_menu_shell_draw; container_class->add = gtk_menu_shell_add; container_class->remove = gtk_menu_shell_remove; @@ -585,7 +589,6 @@ gtk_menu_shell_realize (GtkWidget *widget) GdkWindow *window; GdkWindowAttr attributes; gint attributes_mask; - GtkStyleContext *context; gtk_widget_set_realized (widget, TRUE); @@ -613,9 +616,18 @@ gtk_menu_shell_realize (GtkWidget *widget) &attributes, attributes_mask); gtk_widget_set_window (widget, window); gtk_widget_register_window (widget, window); +} + +static gboolean +gtk_menu_shell_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)); - context = gtk_widget_get_style_context (widget); - gtk_style_context_set_background (context, window); + return GTK_WIDGET_CLASS (gtk_menu_shell_parent_class)->draw (widget, cr); } static void |