+2009-09-11 Claudio Saavedra <csaavedra@igalia.com>
+
+ Do not set any flag for empty legacy menus
+
+ * hildon/hildon-program.c: (hildon_program_set_common_menu):
+ * hildon/hildon-window.c: (hildon_window_update_menu_flag):
+ This will probably not work fine with empty legacy menus added to
+ programs or windows and populated later, but so it's life.
+
2009-09-10 Claudio Saavedra <csaavedra@igalia.com>
Update the application menu flag for application-wise windows
/* Only set the menu flag if there was no common menu and
we are setting one. If we are unsetting the current common menu,
remove the commmon menu flag. Otherwise, nothing to do. */
- if (!priv->common_menu && menu) {
+
+ GList *menu_children = gtk_container_get_children (GTK_CONTAINER (menu));
+ if (!priv->common_menu
+ && menu && menu_children != NULL) {
hildon_program_set_common_menu_flag (self, TRUE);
- } else if (priv->common_menu && !menu) {
+ } else if (priv->common_menu &&
+ (!menu || menu_children == NULL))
+ {
hildon_program_set_common_menu_flag (self, FALSE);
}
+ g_list_free (menu_children);
priv->common_menu = menu;
} else {
if (!priv->program || !hildon_program_get_common_menu (priv->program))
{
- hildon_window_set_menu_flag (self, priv->menu != NULL
- && gtk_container_get_children (GTK_CONTAINER (priv->menu)));
+ GList *menu_children = gtk_container_get_children (GTK_CONTAINER (priv->menu));
+ hildon_window_set_menu_flag (self, priv->menu != NULL && menu_children != NULL);
+ g_free (menu_children);
}
}
}