[mutter] adjust to new Gtk properties for app menu
- From: Ryan Lortie <ryanl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] adjust to new Gtk properties for app menu
- Date: Wed, 18 Jan 2012 22:26:21 +0000 (UTC)
commit 1772a2a59c35e6857781e2decd8bcdb0afbfc2a4
Author: Ryan Lortie <desrt desrt ca>
Date: Tue Jan 17 13:27:10 2012 -0500
adjust to new Gtk properties for app menu
https://bugzilla.gnome.org/show_bug.cgi?id=668118
src/core/window-private.h | 9 ++-
src/core/window-props.c | 94 +++++++++---------------------
src/core/window.c | 141 ++++++++++++++++++++++++++++++++++-----------
src/meta/atomnames.h | 9 ++-
src/meta/window.h | 9 ++-
5 files changed, 154 insertions(+), 108 deletions(-)
---
diff --git a/src/core/window-private.h b/src/core/window-private.h
index 535fcdb..b425aed 100644
--- a/src/core/window-private.h
+++ b/src/core/window-private.h
@@ -101,9 +101,12 @@ struct _MetaWindow
char *startup_id;
char *mutter_hints;
char *gtk_theme_variant;
- char *dbus_application_id;
- char *dbus_unique_name;
- char *dbus_object_path;
+ char *gtk_application_id;
+ char *gtk_unique_bus_name;
+ char *gtk_application_object_path;
+ char *gtk_window_object_path;
+ char *gtk_app_menu_object_path;
+ char *gtk_menubar_object_path;
int hide_titlebar_when_maximized;
int net_wm_pid;
diff --git a/src/core/window-props.c b/src/core/window-props.c
index f73c26f..bd8262a 100644
--- a/src/core/window-props.c
+++ b/src/core/window-props.c
@@ -1617,71 +1617,30 @@ reload_gtk_hide_titlebar_when_maximized (MetaWindow *window,
}
}
-static void
-reload_dbus_application_id (MetaWindow *window,
- MetaPropValue *value,
- gboolean initial)
-{
- char *new_id = NULL;
- char *current_id = window->dbus_application_id;
-
- if (value->type != META_PROP_VALUE_INVALID)
- new_id = value->v.str;
-
- if (g_strcmp0 (new_id, current_id) != 0)
- {
- g_free (current_id);
-
- if (new_id)
- window->dbus_application_id = g_strdup (new_id);
- else
- window->dbus_application_id = NULL;
-
- g_object_notify ((GObject*)window, "dbus-application-id");
- }
-}
-
-static void
-reload_dbus_unique_name (MetaWindow *window,
- MetaPropValue *value,
- gboolean initial)
-{
- char *new_id = NULL;
- char *current_id = window->dbus_unique_name;
-
- if (value->type != META_PROP_VALUE_INVALID)
- new_id = value->v.str;
-
- if (g_strcmp0 (new_id, current_id) != 0)
- {
- g_free (current_id);
-
- window->dbus_unique_name = g_strdup (new_id);
-
- g_object_notify ((GObject*)window, "dbus-unique-name");
- }
-}
-
-static void
-reload_dbus_object_path (MetaWindow *window,
- MetaPropValue *value,
- gboolean initial)
-{
- char *new_path = NULL;
- char *current_path = window->dbus_object_path;
-
- if (value->type != META_PROP_VALUE_INVALID)
- new_path = value->v.str;
-
- if (g_strcmp0 (new_path, current_path) != 0)
- {
- g_free (current_path);
+#define RELOAD_STRING(var_name, propname) \
+ static void \
+ reload_ ## var_name (MetaWindow *window, \
+ MetaPropValue *value, \
+ gboolean initial) \
+ { \
+ g_free (window->var_name); \
+ \
+ if (value->type != META_PROP_VALUE_INVALID) \
+ window->var_name = g_strdup (value->v.str); \
+ else \
+ window->var_name = NULL; \
+ \
+ g_object_notify (G_OBJECT (window), propname); \
+ }
- window->dbus_object_path = g_strdup (new_path);
+RELOAD_STRING (gtk_unique_bus_name, "gtk-unique-bus-name")
+RELOAD_STRING (gtk_application_id, "gtk-application-id")
+RELOAD_STRING (gtk_application_object_path, "gtk-application-object-path")
+RELOAD_STRING (gtk_window_object_path, "gtk-window-object-path")
+RELOAD_STRING (gtk_app_menu_object_path, "gtk-app-menu-object-path")
+RELOAD_STRING (gtk_menubar_object_path, "gtk-menubar-object-path")
- g_object_notify ((GObject*)window, "dbus-object-path");
- }
-}
+#undef RELOAD_STRING
/**
* Initialises the property hooks system. Each row in the table named "hooks"
@@ -1737,9 +1696,12 @@ meta_display_init_window_prop_hooks (MetaDisplay *display)
{ XA_WM_TRANSIENT_FOR, META_PROP_VALUE_WINDOW, reload_transient_for, TRUE, FALSE },
{ display->atom__GTK_THEME_VARIANT, META_PROP_VALUE_UTF8, reload_gtk_theme_variant, TRUE, FALSE },
{ display->atom__GTK_HIDE_TITLEBAR_WHEN_MAXIMIZED, META_PROP_VALUE_CARDINAL, reload_gtk_hide_titlebar_when_maximized, TRUE, FALSE },
- { display->atom__DBUS_APPLICATION_ID, META_PROP_VALUE_UTF8, reload_dbus_application_id, TRUE, FALSE },
- { display->atom__DBUS_UNIQUE_NAME, META_PROP_VALUE_UTF8, reload_dbus_unique_name, TRUE, FALSE },
- { display->atom__DBUS_OBJECT_PATH, META_PROP_VALUE_UTF8, reload_dbus_object_path, TRUE, FALSE },
+ { display->atom__GTK_APPLICATION_ID, META_PROP_VALUE_UTF8, reload_gtk_application_id, TRUE, FALSE },
+ { display->atom__GTK_UNIQUE_BUS_NAME, META_PROP_VALUE_UTF8, reload_gtk_unique_bus_name, TRUE, FALSE },
+ { display->atom__GTK_APPLICATION_OBJECT_PATH, META_PROP_VALUE_UTF8, reload_gtk_application_object_path, TRUE, FALSE },
+ { display->atom__GTK_WINDOW_OBJECT_PATH, META_PROP_VALUE_UTF8, reload_gtk_window_object_path, TRUE, FALSE },
+ { display->atom__GTK_APP_MENU_OBJECT_PATH, META_PROP_VALUE_UTF8, reload_gtk_app_menu_object_path, TRUE, FALSE },
+ { display->atom__GTK_MENUBAR_OBJECT_PATH, META_PROP_VALUE_UTF8, reload_gtk_menubar_object_path, TRUE, FALSE },
{ display->atom__NET_WM_USER_TIME_WINDOW, META_PROP_VALUE_WINDOW, reload_net_wm_user_time_window, TRUE, FALSE },
{ display->atom_WM_STATE, META_PROP_VALUE_INVALID, NULL, FALSE, FALSE },
{ display->atom__NET_WM_ICON, META_PROP_VALUE_INVALID, reload_net_wm_icon, FALSE, FALSE },
diff --git a/src/core/window.c b/src/core/window.c
index 378b49b..efd1b3c 100644
--- a/src/core/window.c
+++ b/src/core/window.c
@@ -165,9 +165,12 @@ enum {
PROP_RESIZEABLE,
PROP_ABOVE,
PROP_WM_CLASS,
- PROP_DBUS_APPLICATION_ID,
- PROP_DBUS_UNIQUE_NAME,
- PROP_DBUS_OBJECT_PATH
+ PROP_GTK_APPLICATION_ID,
+ PROP_GTK_UNIQUE_BUS_NAME,
+ PROP_GTK_APPLICATION_OBJECT_PATH,
+ PROP_GTK_WINDOW_OBJECT_PATH,
+ PROP_GTK_APP_MENU_OBJECT_PATH,
+ PROP_GTK_MENUBAR_OBJECT_PATH
};
enum
@@ -224,9 +227,12 @@ meta_window_finalize (GObject *object)
g_free (window->icon_name);
g_free (window->desc);
g_free (window->gtk_theme_variant);
- g_free (window->dbus_application_id);
- g_free (window->dbus_unique_name);
- g_free (window->dbus_object_path);
+ g_free (window->gtk_application_id);
+ g_free (window->gtk_unique_bus_name);
+ g_free (window->gtk_application_object_path);
+ g_free (window->gtk_window_object_path);
+ g_free (window->gtk_app_menu_object_path);
+ g_free (window->gtk_menubar_object_path);
}
static void
@@ -290,14 +296,23 @@ meta_window_get_property(GObject *object,
case PROP_ABOVE:
g_value_set_boolean (value, win->wm_state_above);
break;
- case PROP_DBUS_APPLICATION_ID:
- g_value_set_string (value, win->dbus_application_id);
+ case PROP_GTK_APPLICATION_ID:
+ g_value_set_string (value, win->gtk_application_id);
break;
- case PROP_DBUS_UNIQUE_NAME:
- g_value_set_string (value, win->dbus_unique_name);
+ case PROP_GTK_UNIQUE_BUS_NAME:
+ g_value_set_string (value, win->gtk_unique_bus_name);
break;
- case PROP_DBUS_OBJECT_PATH:
- g_value_set_string (value, win->dbus_object_path);
+ case PROP_GTK_APPLICATION_OBJECT_PATH:
+ g_value_set_string (value, win->gtk_application_object_path);
+ break;
+ case PROP_GTK_WINDOW_OBJECT_PATH:
+ g_value_set_string (value, win->gtk_window_object_path);
+ break;
+ case PROP_GTK_APP_MENU_OBJECT_PATH:
+ g_value_set_string (value, win->gtk_app_menu_object_path);
+ break;
+ case PROP_GTK_MENUBAR_OBJECT_PATH:
+ g_value_set_string (value, win->gtk_menubar_object_path);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -466,26 +481,50 @@ meta_window_class_init (MetaWindowClass *klass)
G_PARAM_READABLE));
g_object_class_install_property (object_class,
- PROP_DBUS_APPLICATION_ID,
- g_param_spec_string ("dbus-application-id",
- "DBusApplicationID",
- "Contents of the _DBUS_APPLICATION_ID property of this window",
+ PROP_GTK_APPLICATION_ID,
+ g_param_spec_string ("gtk-application-id",
+ "_GTK_APPLICATION_ID",
+ "Contents of the _GTK_APPLICATION_ID property of this window",
+ NULL,
+ G_PARAM_READABLE));
+
+ g_object_class_install_property (object_class,
+ PROP_GTK_UNIQUE_BUS_NAME,
+ g_param_spec_string ("gtk-unique-bus-name",
+ "_GTK_UNIQUE_BUS_NAME",
+ "Contents of the _GTK_UNIQUE_BUS_NAME property of this window",
+ NULL,
+ G_PARAM_READABLE));
+
+ g_object_class_install_property (object_class,
+ PROP_GTK_APPLICATION_OBJECT_PATH,
+ g_param_spec_string ("gtk-application-object-path",
+ "_GTK_APPLICATION_OBJECT_PATH",
+ "Contents of the _GTK_APPLICATION_OBJECT_PATH property of this window",
NULL,
G_PARAM_READABLE));
g_object_class_install_property (object_class,
- PROP_DBUS_UNIQUE_NAME,
- g_param_spec_string ("dbus-unique-name",
- "_DBUS_UNIQUE_NAME",
- "Contents of the _DBUS_UNIQUE_NAME property of this window",
+ PROP_GTK_WINDOW_OBJECT_PATH,
+ g_param_spec_string ("gtk-window-object-path",
+ "_GTK_WINDOW_OBJECT_PATH",
+ "Contents of the _GTK_WINDOW_OBJECT_PATH property of this window",
NULL,
G_PARAM_READABLE));
g_object_class_install_property (object_class,
- PROP_DBUS_OBJECT_PATH,
- g_param_spec_string ("dbus-object-path",
- "_DBUS_OBJECT_PATH",
- "Contents of the _DBUS_OBJECT_PATH property of this window",
+ PROP_GTK_APP_MENU_OBJECT_PATH,
+ g_param_spec_string ("gtk-app-menu-object-path",
+ "_GTK_APP_MENU_OBJECT_PATH",
+ "Contents of the _GTK_APP_MENU_OBJECT_PATH property of this window",
+ NULL,
+ G_PARAM_READABLE));
+
+ g_object_class_install_property (object_class,
+ PROP_GTK_MENUBAR_OBJECT_PATH,
+ g_param_spec_string ("gtk-menubar-object-path",
+ "_GTK_MENUBAR_OBJECT_PATH",
+ "Contents of the _GTK_MENUBAR_OBJECT_PATH property of this window",
NULL,
G_PARAM_READABLE));
@@ -10251,39 +10290,75 @@ meta_window_get_wm_class_instance (MetaWindow *window)
}
/**
- * meta_window_get_dbus_application_id:
+ * meta_window_get_gtk_application_id:
* @window: a #MetaWindow
*
* Return value: (transfer none): the application ID
**/
const char *
-meta_window_get_dbus_application_id (MetaWindow *window)
+meta_window_get_gtk_application_id (MetaWindow *window)
{
- return window->dbus_application_id;
+ return window->gtk_application_id;
}
/**
- * meta_window_get_dbus_unique_name:
+ * meta_window_get_gtk_unique_bus_name:
* @window: a #MetaWindow
*
* Return value: (transfer none): the unique name
**/
const char *
-meta_window_get_dbus_unique_name (MetaWindow *window)
+meta_window_get_gtk_unique_bus_name (MetaWindow *window)
+{
+ return window->gtk_unique_bus_name;
+}
+
+/**
+ * meta_window_get_gtk_application_object_path:
+ * @window: a #MetaWindow
+ *
+ * Return value: (transfer none): the object path
+ **/
+const char *
+meta_window_get_gtk_application_object_path (MetaWindow *window)
+{
+ return window->gtk_application_object_path;
+}
+
+/**
+ * meta_window_get_gtk_window_object_path:
+ * @window: a #MetaWindow
+ *
+ * Return value: (transfer none): the object path
+ **/
+const char *
+meta_window_get_gtk_window_object_path (MetaWindow *window)
+{
+ return window->gtk_window_object_path;
+}
+
+/**
+ * meta_window_get_gtk_app_menu_object_path:
+ * @window: a #MetaWindow
+ *
+ * Return value: (transfer none): the object path
+ **/
+const char *
+meta_window_get_gtk_app_menu_object_path (MetaWindow *window)
{
- return window->dbus_unique_name;
+ return window->gtk_app_menu_object_path;
}
/**
- * meta_window_get_dbus_object_path:
+ * meta_window_get_gtk_menubar_object_path:
* @window: a #MetaWindow
*
* Return value: (transfer none): the object path
**/
const char *
-meta_window_get_dbus_object_path (MetaWindow *window)
+meta_window_get_gtk_menubar_object_path (MetaWindow *window)
{
- return window->dbus_object_path;
+ return window->gtk_menubar_object_path;
}
/**
diff --git a/src/meta/atomnames.h b/src/meta/atomnames.h
index aa33ab7..210e5a2 100644
--- a/src/meta/atomnames.h
+++ b/src/meta/atomnames.h
@@ -60,9 +60,12 @@ item(_MUTTER_TOGGLE_VERBOSE)
item(_MUTTER_HINTS)
item(_GTK_THEME_VARIANT)
item(_GTK_HIDE_TITLEBAR_WHEN_MAXIMIZED)
-item(_DBUS_APPLICATION_ID)
-item(_DBUS_UNIQUE_NAME)
-item(_DBUS_OBJECT_PATH)
+item(_GTK_APPLICATION_ID)
+item(_GTK_UNIQUE_BUS_NAME)
+item(_GTK_APPLICATION_OBJECT_PATH)
+item(_GTK_WINDOW_OBJECT_PATH)
+item(_GTK_APP_MENU_OBJECT_PATH)
+item(_GTK_MENUBAR_OBJECT_PATH)
item(_GNOME_WM_KEYBINDINGS)
item(_GNOME_PANEL_ACTION)
item(_GNOME_PANEL_ACTION_MAIN_MENU)
diff --git a/src/meta/window.h b/src/meta/window.h
index fbb9a3f..765ef28 100644
--- a/src/meta/window.h
+++ b/src/meta/window.h
@@ -95,9 +95,12 @@ const char * meta_window_get_wm_class (MetaWindow *window);
const char * meta_window_get_wm_class_instance (MetaWindow *window);
gboolean meta_window_showing_on_its_workspace (MetaWindow *window);
-const char * meta_window_get_dbus_application_id (MetaWindow *window);
-const char * meta_window_get_dbus_unique_name (MetaWindow *window);
-const char * meta_window_get_dbus_object_path (MetaWindow *window);
+const char * meta_window_get_gtk_application_id (MetaWindow *window);
+const char * meta_window_get_gtk_unique_bus_name (MetaWindow *window);
+const char * meta_window_get_gtk_application_object_path (MetaWindow *window);
+const char * meta_window_get_gtk_window_object_path (MetaWindow *window);
+const char * meta_window_get_gtk_app_menu_object_path (MetaWindow *window);
+const char * meta_window_get_gtk_menubar_object_path (MetaWindow *window);
void meta_window_move(MetaWindow *window, gboolean user_op, int root_x_nw, int root_y_nw);
void meta_window_move_frame(MetaWindow *window, gboolean user_op, int root_x_nw, int root_y_nw);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]