2009-09-08 Claudio Saavedra <csaavedra@igalia.com>
+ Set a special window property for windows with menus
+
+ * hildon/hildon-window-private.h: Add private
+ hildon_window_set_menu_flag()
+ * hildon/hildon-window.c: (+do_set_has_menu),
+ (+hildon_window_set_menu_flag): set
+ "_HILDON_WM_WINDOW_MENU_INDICATOR" to 1 in the window
+ or remove the property.
+ (hildon_window_set_main_menu),
+ (hildon_window_set_app_menu): call above methods to set or remove
+ the property when a menu is added or removed from the window.
+
+ Partially fixes: NB#137814 (Indicator for view menu in app title area)
+
+2009-09-08 Claudio Saavedra <csaavedra@igalia.com>
+
Rename and move the methods to set flags to hildon-private.h
* hildon/hildon-gtk.c: (do_set_progress_indicator),
#include "hildon-app-menu-private.h"
#include "hildon-find-toolbar.h"
#include "hildon-defines.h"
+#include "hildon-private.h"
#define _(String) gettext(String)
gtk_window_add_accel_group (GTK_WINDOW (self), accel_group);
}
+static void
+do_set_has_menu (GtkWindow *window,
+ gpointer boolptr)
+{
+ gboolean has_menu = GPOINTER_TO_INT (boolptr);
+ hildon_gtk_window_set_clear_window_flag (window, "_HILDON_WM_WINDOW_MENU_INDICATOR",
+ XA_INTEGER, has_menu);
+ g_signal_handlers_disconnect_matched (window, G_SIGNAL_MATCH_FUNC,
+ 0, 0, NULL, do_set_has_menu, NULL);
+}
+
+void
+hildon_window_set_menu_flag (HildonWindow *window,
+ gboolean has_menu)
+{
+ hildon_gtk_window_set_flag (GTK_WINDOW (window), (HildonFlagFunc) do_set_has_menu,
+ GUINT_TO_POINTER (has_menu));
+}
+
/**
* hildon_window_set_main_menu:
* @self: A #HildonWindow
priv = HILDON_WINDOW_GET_PRIVATE (self);
+ hildon_window_set_menu_flag (self, menu != NULL);
+
if (priv->menu != NULL)
{
accel_group = gtk_menu_get_accel_group (priv->menu);
old_menu = priv->app_menu;
+ hildon_window_set_menu_flag (self, menu != NULL);
+
/* Add new menu */
priv->app_menu = menu;
if (menu)