X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=hildon%2Fhildon-app-menu.c;h=f1df8591ed7e56b882dbee9eaa7d793b6daac581;hb=01c54a1b0b89b139ae8bf62edaf952b54ad5bdf8;hp=8b6974d5084eb6fedab7210fdf07484d02484c0b;hpb=7220b337024634b242f2c7f4ccc731535d77bd31;p=hildon diff --git a/hildon/hildon-app-menu.c b/hildon/hildon-app-menu.c index 8b6974d..f1df859 100644 --- a/hildon/hildon-app-menu.c +++ b/hildon/hildon-app-menu.c @@ -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 @@ -29,8 +29,12 @@ * 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 @@ -100,6 +104,7 @@ #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 |