aboutsummaryrefslogtreecommitdiff
path: root/libdbusmenu-glib/menuitem.c
diff options
context:
space:
mode:
authorTed Gould <ted@gould.cx>2011-02-21 22:28:26 -0600
committerTed Gould <ted@gould.cx>2011-02-21 22:28:26 -0600
commit7758c36a39a616db3e80c18c46b97a569baf1b88 (patch)
treecd62a8936d8534bd7c3588b8dec5a54b4a10ec8c /libdbusmenu-glib/menuitem.c
parent75a1e1a6f35403836f1798fb623fca302e7b4655 (diff)
parent9c4d38ce605a99616d83918eb6ee7e200090b06d (diff)
downloadlibdbusmenu-7758c36a39a616db3e80c18c46b97a569baf1b88.tar.gz
libdbusmenu-7758c36a39a616db3e80c18c46b97a569baf1b88.tar.bz2
libdbusmenu-7758c36a39a616db3e80c18c46b97a569baf1b88.zip
Only send property updates if the menu item has been
seen on the bus.
Diffstat (limited to 'libdbusmenu-glib/menuitem.c')
-rw-r--r--libdbusmenu-glib/menuitem.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/libdbusmenu-glib/menuitem.c b/libdbusmenu-glib/menuitem.c
index 1a39736..f1edc2d 100644
--- a/libdbusmenu-glib/menuitem.c
+++ b/libdbusmenu-glib/menuitem.c
@@ -61,6 +61,7 @@ struct _DbusmenuMenuitemPrivate
gboolean root;
gboolean realized;
DbusmenuDefaults * defaults;
+ gboolean exposed;
};
/* Signals */
@@ -316,6 +317,7 @@ dbusmenu_menuitem_init (DbusmenuMenuitem *self)
priv->realized = FALSE;
priv->defaults = dbusmenu_defaults_ref_default();
+ priv->exposed = FALSE;
return;
}
@@ -1436,6 +1438,8 @@ GVariant *
dbusmenu_menuitem_build_variant (DbusmenuMenuitem * mi, const gchar ** properties, gint recurse)
{
g_return_val_if_fail(DBUSMENU_IS_MENUITEM(mi), NULL);
+ DbusmenuMenuitemPrivate * priv = DBUSMENU_MENUITEM_GET_PRIVATE(mi);
+ priv->exposed = TRUE;
gint id = 0;
if (!dbusmenu_menuitem_get_root(mi)) {
@@ -1618,3 +1622,13 @@ dbusmenu_menuitem_property_is_default (DbusmenuMenuitem * mi, const gchar * prop
g_warn_if_reached();
return FALSE;
}
+
+/* Check to see if this menu item has been sent into the bus yet or
+ not. If no one cares we can give less info */
+gboolean
+dbusmenu_menuitem_exposed (DbusmenuMenuitem * mi)
+{
+ g_return_val_if_fail(DBUSMENU_IS_MENUITEM(mi), FALSE);
+ DbusmenuMenuitemPrivate * priv = DBUSMENU_MENUITEM_GET_PRIVATE(mi);
+ return priv->exposed;
+}