+static void
+hildon_window_update_menu_flag (HildonWindow *self,
+ gboolean is_app_menu)
+{
+ HildonWindowPrivate *priv;
+
+ priv = HILDON_WINDOW_GET_PRIVATE (self);
+
+ if (is_app_menu)
+ {
+ /* Change the menu flag only if there is no program or common
+ application menu. */
+ if (!priv->program ||
+ !hildon_program_get_common_app_menu (priv->program))
+ {
+ hildon_window_set_menu_flag (self, priv->app_menu != NULL &&
+ hildon_app_menu_has_visible_children (priv->app_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)));
+ }
+ }
+}
+
+static void
+on_menu_changed (HildonAppMenu *menu,
+ HildonWindow *window)
+{
+ hildon_window_update_menu_flag (window, TRUE);
+}
+