summaryrefslogtreecommitdiff
path: root/gtk/gtkmenushell.c
diff options
context:
space:
mode:
authorCosimo Cecchi <cosimoc@gnome.org>2015-06-03 18:21:16 -0700
committerCosimo Cecchi <cosimoc@gnome.org>2015-07-01 16:09:22 -0700
commitb7be29390fecce3a3919700cf18779c03ca08f06 (patch)
treeffd2966cf36b1b2afb102e4d57a7f4eb785b7d56 /gtk/gtkmenushell.c
parent828db3eca93df11308abce12ea30bb9e4d32a9a0 (diff)
downloadgtk+-b7be29390fecce3a3919700cf18779c03ca08f06.tar.gz
menushell: don't call gtk_style_context_set_background()
Diffstat (limited to 'gtk/gtkmenushell.c')
-rw-r--r--gtk/gtkmenushell.c18
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