Make HildonEntry:size a G_PARAM_CONSTRUCT property
[hildon] / hildon / hildon-app-menu.c
index 8b6974d..f1df859 100644 (file)
@@ -20,8 +20,8 @@
  * SECTION:hildon-app-menu
  * @short_description: Widget representing the application menu in the Hildon framework.
  *
- * The #HildonAppMenu is a GTK widget which represents an application
- * menu in the Hildon framework.
+ * #HildonAppMenu is a GTK widget which represents an application menu
+ * in the Hildon framework.
  *
  * This menu opens from the top of the screen and contains a number of
  * entries (#GtkButton) organized in one or two columns, depending on
  * if the screen is resized). Entries are added left to right and top
  * to bottom.
  *
- * Besides that, the #HildonAppMenu can contain a group of filter buttons
- * (#GtkToggleButton or #GtkRadioButton).
+ * Besides that, #HildonAppMenu can contain a group of filter buttons
+ * (#GtkToggleButton or #GtkRadioButton). Filters are meant to change
+ * the way data is presented in the application, rather than change
+ * the layout of the menu itself. For example, a file manager can have
+ * filters to decide the order used to display a list of files (name,
+ * date, size, etc.).
  *
  * To use a #HildonAppMenu, add it to a #HildonWindow using
  * hildon_window_set_app_menu(). The menu will appear when the user
 #include                                        "hildon-app-menu-private.h"
 #include                                        "hildon-window.h"
 #include                                        "hildon-banner.h"
+#include                                        "hildon-animation-actor.h"
 
 static GdkWindow *
 grab_transfer_window_get                        (GtkWidget *widget);
@@ -492,7 +497,7 @@ hildon_app_menu_find_intruder                   (gpointer data)
                      * Yes, this is a hack. See NB#111027 */
                     if (HILDON_IS_BANNER (i->data)) {
                         gtk_widget_hide (i->data);
-                    } else {
+                    } else if (!HILDON_IS_ANIMATION_ACTOR (i->data)) {
                         intruder_found = TRUE;
                     }
                 }
@@ -515,14 +520,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 |