2008-12-16 Alberto Garcia <agarcia@igalia.com>
+ * src/hildon-app-menu.c (hildon_app_menu_set_parent_window)
+ (hildon_app_menu_finalize): If the parent window of the menu is
+ hidden, hide the menu too.
+
+ Fixes: NB#94460 (stackable window's menu is not closed when its
+ window is hidden)
+
+2008-12-16 Alberto Garcia <agarcia@igalia.com>
+
* debian/changelog
* debian/libhildon1-examples.install
* debian/rules
}
}
+static void
+parent_window_hidden (GtkWidget *parent_win,
+ GtkWidget *menu)
+{
+ gtk_widget_hide (menu);
+}
+
void G_GNUC_INTERNAL
hildon_app_menu_set_parent_window (HildonAppMenu *self,
GtkWindow *parent_window)
priv = HILDON_APP_MENU_GET_PRIVATE(self);
+ /* Disconnect old handlers, if any */
+ if (priv->parent_window)
+ g_signal_handlers_disconnect_by_func (priv->parent_window, parent_window_hidden, self);
+
+ /* Connect a new handler */
+ if (parent_window)
+ g_signal_connect (parent_window, "unmap", G_CALLBACK (parent_window_hidden), self);
+
priv->parent_window = parent_window;
if (parent_window == NULL && GTK_WIDGET_VISIBLE (self))
{
HildonAppMenuPrivate *priv = HILDON_APP_MENU_GET_PRIVATE(object);
+ if (priv->parent_window)
+ g_signal_handlers_disconnect_by_func (priv->parent_window, parent_window_hidden, object);
+
if (priv->transfer_window)
gdk_window_destroy (priv->transfer_window);