]> Pileus Git - ~andy/gtk/commitdiff
menu: Only realize menu if it isn't realized yet
authorBenjamin Otte <otte@redhat.com>
Thu, 19 May 2011 10:51:13 +0000 (12:51 +0200)
committerBenjamin Otte <otte@redhat.com>
Thu, 19 May 2011 11:04:19 +0000 (13:04 +0200)
Lots of code calls gtk_menu_popup() and we don't want to resize the
window needlessly.
In this particular case, keyboard navigation to submenus caused those
submenus to shrink.

Note: I'm not sure this fix doesn't have nasty side effects, as I'm not
a specialist on menu popup code, so if it does, we'll need to revert it.
Until then, let's keep it, it fixes a bug.

gtk/gtkmenu.c

index 59b805660cc040712daea670760b838bd6ecd62a..b6e4ee8d883431e71ba04c319b5dea1d0259271a 100644 (file)
@@ -1678,6 +1678,7 @@ gtk_menu_popup_for_device (GtkMenu             *menu,
   /* Compute the size of the toplevel and realize it so we
    * can scroll correctly.
    */
+  if (!gtk_widget_get_realized (GTK_WIDGET (menu)))
   {
     GtkRequisition tmp_request;
     GtkAllocation tmp_allocation = { 0, };