From cd78fa15eda0638180ba5ffd4d6eccb2cbfefb86 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Thu, 24 Mar 2016 19:50:45 +0100 Subject: [PATCH] menu: Clip children to view window Don't overdraw the arrow allocations. https://bugzilla.gnome.org/show_bug.cgi?id=764118 --- gtk/gtkmenu.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/gtk/gtkmenu.c b/gtk/gtkmenu.c index cdf2aecb2e..a811a234e6 100644 --- a/gtk/gtkmenu.c +++ b/gtk/gtkmenu.c @@ -3011,7 +3011,19 @@ gtk_menu_draw (GtkWidget *widget, gtk_css_gadget_draw (priv->bottom_arrow_gadget, cr); } - GTK_WIDGET_CLASS (gtk_menu_parent_class)->draw (widget, cr); + if (gtk_cairo_should_draw_window (cr, priv->bin_window)) + { + int x, y; + + gdk_window_get_position (priv->view_window, &x, &y); + cairo_rectangle (cr, + x, y, + gdk_window_get_width (priv->view_window), + gdk_window_get_height (priv->view_window)); + cairo_clip (cr); + + GTK_WIDGET_CLASS (gtk_menu_parent_class)->draw (widget, cr); + } return FALSE; }