gtk+ r20754 - in trunk: . gtk



Author: matthiasc
Date: Thu Jul  3 23:33:08 2008
New Revision: 20754
URL: http://svn.gnome.org/viewvc/gtk+?rev=20754&view=rev

Log:

        * gtk/gtkmenuitem.c: Fall back to the default positioning when
        the menuitem is not realized. Patch by BjÃrn Lindqvist.




Modified:
   trunk/ChangeLog
   trunk/gtk/gtkmenuitem.c

Modified: trunk/gtk/gtkmenuitem.c
==============================================================================
--- trunk/gtk/gtkmenuitem.c	(original)
+++ trunk/gtk/gtkmenuitem.c	Thu Jul  3 23:33:08 2008
@@ -1141,6 +1141,7 @@
   if (GTK_WIDGET_IS_SENSITIVE (menu_item->submenu))
     {
       gboolean take_focus;
+      GtkMenuPositionFunc menu_position_func;
 
       take_focus = gtk_menu_shell_get_take_focus (GTK_MENU_SHELL (widget->parent));
       gtk_menu_shell_set_take_focus (GTK_MENU_SHELL (menu_item->submenu),
@@ -1162,10 +1163,21 @@
                              "gtk-menu-exact-popup-time", NULL);
         }
 
+      /* gtk_menu_item_position_menu positions the submenu from the
+       * menuitems position. If the menuitem doesn't have a window,
+       * that doesn't work. In that case we use the default
+       * positioning function instead which places the submenu at the
+       * mouse cursor.
+       */
+      if (widget->window)
+        menu_position_func = gtk_menu_item_position_menu;
+      else
+        menu_position_func = NULL;
+
       gtk_menu_popup (GTK_MENU (menu_item->submenu),
                       widget->parent,
                       widget,
-                      gtk_menu_item_position_menu,
+                      menu_position_func,
                       menu_item,
                       GTK_MENU_SHELL (widget->parent)->button,
                       0);



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