diff options
author | Ted Gould <ted@gould.cx> | 2011-02-24 08:34:48 -0600 |
---|---|---|
committer | Ted Gould <ted@gould.cx> | 2011-02-24 08:34:48 -0600 |
commit | dc884d4c136e674b96fe44dfd1201da8c7872816 (patch) | |
tree | ec4bf109f867b2bfac57e8786426b5678a138fe4 /libdbusmenu-glib/menuitem.c | |
parent | b57f5a8ba47155113d8352a6b15bd31209a9199b (diff) | |
parent | 9c4d38ce605a99616d83918eb6ee7e200090b06d (diff) | |
download | libdbusmenu-dc884d4c136e674b96fe44dfd1201da8c7872816.tar.gz libdbusmenu-dc884d4c136e674b96fe44dfd1201da8c7872816.tar.bz2 libdbusmenu-dc884d4c136e674b96fe44dfd1201da8c7872816.zip |
Only send property updates if the item has been already requested.
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 78e07df..89b2b91 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; } @@ -1439,6 +1441,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)) { @@ -1621,3 +1625,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; +} |