mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2025-01-15 23:00:08 +00:00
Fall back to the default positioning when the menuitem is not realized.
* gtk/gtkmenuitem.c: Fall back to the default positioning when the menuitem is not realized. Patch by Björn Lindqvist. svn path=/trunk/; revision=20754
This commit is contained in:
parent
8f6aa13b05
commit
65f9d54685
@ -1,3 +1,11 @@
|
|||||||
|
2008-07-03 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
|
Bug 540618 – gtk_menu_shell_select_first prints warning on GtkMenubar
|
||||||
|
constructed using GtkUIManager
|
||||||
|
|
||||||
|
* gtk/gtkmenuitem.c: Fall back to the default positioning when
|
||||||
|
the menuitem is not realized. Patch by Björn Lindqvist.
|
||||||
|
|
||||||
2008-07-03 Matthias Clasen <mclasen@redhat.com>
|
2008-07-03 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
Bug 540612 – mem leak in filechooser
|
Bug 540612 – mem leak in filechooser
|
||||||
|
@ -1141,6 +1141,7 @@ gtk_menu_item_real_popup_submenu (GtkWidget *widget,
|
|||||||
if (GTK_WIDGET_IS_SENSITIVE (menu_item->submenu))
|
if (GTK_WIDGET_IS_SENSITIVE (menu_item->submenu))
|
||||||
{
|
{
|
||||||
gboolean take_focus;
|
gboolean take_focus;
|
||||||
|
GtkMenuPositionFunc menu_position_func;
|
||||||
|
|
||||||
take_focus = gtk_menu_shell_get_take_focus (GTK_MENU_SHELL (widget->parent));
|
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),
|
gtk_menu_shell_set_take_focus (GTK_MENU_SHELL (menu_item->submenu),
|
||||||
@ -1162,10 +1163,21 @@ gtk_menu_item_real_popup_submenu (GtkWidget *widget,
|
|||||||
"gtk-menu-exact-popup-time", NULL);
|
"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),
|
gtk_menu_popup (GTK_MENU (menu_item->submenu),
|
||||||
widget->parent,
|
widget->parent,
|
||||||
widget,
|
widget,
|
||||||
gtk_menu_item_position_menu,
|
menu_position_func,
|
||||||
menu_item,
|
menu_item,
|
||||||
GTK_MENU_SHELL (widget->parent)->button,
|
GTK_MENU_SHELL (widget->parent)->button,
|
||||||
0);
|
0);
|
||||||
|
Loading…
Reference in New Issue
Block a user