diff options
author | Ted Gould <ted@gould.cx> | 2011-02-21 22:28:26 -0600 |
---|---|---|
committer | Ted Gould <ted@gould.cx> | 2011-02-21 22:28:26 -0600 |
commit | 7758c36a39a616db3e80c18c46b97a569baf1b88 (patch) | |
tree | cd62a8936d8534bd7c3588b8dec5a54b4a10ec8c /libdbusmenu-glib/menuitem.c | |
parent | 75a1e1a6f35403836f1798fb623fca302e7b4655 (diff) | |
parent | 9c4d38ce605a99616d83918eb6ee7e200090b06d (diff) | |
download | libdbusmenu-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.c | 14 |
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; +} |