Create grab transfer window for HildonAppMenu before mapping
authorAlberto Garcia <agarcia@igalia.com>
Wed, 27 May 2009 10:37:43 +0000 (12:37 +0200)
committerAlberto Garcia <agarcia@igalia.com>
Wed, 27 May 2009 10:37:43 +0000 (12:37 +0200)
* hildon/hildon-app-menu.c (hildon_app_menu_map):
Create grab transfer window before calling parent's map function.

Fixes: NB#115988 (hildon_app_menu_popup creates menu with
"crushed" button(s) in the top left corner)

ChangeLog
hildon/hildon-app-menu.c

index 7f64867..4fa063d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2009-05-27  Alberto Garcia  <agarcia@igalia.com>
+
+       * hildon/hildon-app-menu.c (hildon_app_menu_map):
+       Create grab transfer window before calling parent's map function.
+
+       Fixes: NB#115988 (hildon_app_menu_popup creates menu with
+       "crushed" button(s) in the top left corner)
+
 2009-05-26  Alberto Garcia  <agarcia@igalia.com>
 
        * hildon/hildon-window-stack.c (_hildon_window_stack_do_push):
index 2381f22..06dee92 100644 (file)
@@ -519,14 +519,15 @@ hildon_app_menu_map                             (GtkWidget *widget)
 {
     HildonAppMenuPrivate *priv = HILDON_APP_MENU_GET_PRIVATE(widget);
 
+    if (priv->transfer_window == NULL)
+        priv->transfer_window = grab_transfer_window_get (widget);
+
     GTK_WIDGET_CLASS (hildon_app_menu_parent_class)->map (widget);
 
     /* Grab pointer and keyboard */
-    if (priv->transfer_window == NULL) {
+    if (priv->transfer_window != NULL) {
         gboolean has_grab = FALSE;
 
-        priv->transfer_window = grab_transfer_window_get (widget);
-
         if (gdk_pointer_grab (priv->transfer_window, TRUE,
                               GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK |
                               GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK |