[gtk+/composite-templates] menubutton: set DROPDOWN_MENU hint on the menu toplevel



commit ac164c9d808a16191a2eba20508d958cb3c5cf41
Author: Cosimo Cecchi <cosimoc gnome org>
Date:   Mon Sep 17 09:50:03 2012 -0400

    menubutton: set DROPDOWN_MENU hint on the menu toplevel
    
    Restore the behavior introduced in
    598163e52684019e4975c3d4ca728a54b00c2f74, which regressed in commit
    5a3442bf9c470736c8846534607be5825c22410b.

 gtk/gtkmenubutton.c |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)
---
diff --git a/gtk/gtkmenubutton.c b/gtk/gtkmenubutton.c
index b5f7547..0edd78b 100644
--- a/gtk/gtkmenubutton.c
+++ b/gtk/gtkmenubutton.c
@@ -249,6 +249,7 @@ menu_position_up_down_func (GtkMenu       *menu,
 {
   GtkMenuButtonPrivate *priv = menu_button->priv;
   GtkWidget *widget = GTK_WIDGET (menu_button);
+  GtkWidget *toplevel;
   GtkRequisition menu_req;
   GtkTextDirection direction;
   GdkRectangle monitor;
@@ -258,6 +259,16 @@ menu_position_up_down_func (GtkMenu       *menu,
   GtkAllocation allocation, arrow_allocation;
   GtkAlign align;
 
+  /* In the common case the menu button is showing a dropdown menu, set the
+   * corresponding type hint on the toplevel, so the WM can omit the top side
+   * of the shadows.
+   */
+  if (priv->arrow_type == GTK_ARROW_DOWN)
+    {
+      toplevel = gtk_widget_get_toplevel (GTK_WIDGET (priv->popup));
+      gtk_window_set_type_hint (GTK_WINDOW (toplevel), GDK_WINDOW_TYPE_HINT_DROPDOWN_MENU);
+    }
+
   gtk_widget_get_preferred_size (GTK_WIDGET (priv->popup),
                                  &menu_req, NULL);
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]