diff options
author | Ted Gould <ted@gould.cx> | 2010-03-15 15:21:26 -0500 |
---|---|---|
committer | Ted Gould <ted@gould.cx> | 2010-03-15 15:21:26 -0500 |
commit | 523c02493e72d1e99e23082e9b14af51fd54ae18 (patch) | |
tree | ae795afebf5e00e4b30f078f19dcba88c0d2443f /src | |
parent | 065984db24fa4e8723d9dd5add9eec0e71d43ace (diff) | |
download | ayatana-indicator-session-523c02493e72d1e99e23082e9b14af51fd54ae18.tar.gz ayatana-indicator-session-523c02493e72d1e99e23082e9b14af51fd54ae18.tar.bz2 ayatana-indicator-session-523c02493e72d1e99e23082e9b14af51fd54ae18.zip |
Switching from hiding entries to just rebuilding the menus.
Diffstat (limited to 'src')
-rw-r--r-- | src/session-service.c | 22 |
1 files changed, 4 insertions, 18 deletions
diff --git a/src/session-service.c b/src/session-service.c index 72a93eb..c0703bb 100644 --- a/src/session-service.c +++ b/src/session-service.c @@ -92,6 +92,8 @@ static DbusmenuMenuitem * shutdown_mi = NULL; static GConfClient * gconf_client = NULL; +static void rebuild_items (DbusmenuMenuitem *root, UsersServiceDbus *service); + static void lockdown_changed (GConfClient *client, guint cnxd_id, @@ -105,24 +107,8 @@ lockdown_changed (GConfClient *client, return; } - if (g_strcmp0 (key, LOCKDOWN_KEY_USER) == 0) { - if (switch_menuitem != NULL) { - if (gconf_value_get_bool (value)) { - dbusmenu_menuitem_property_set_bool (switch_menuitem, DBUSMENU_MENUITEM_PROP_VISIBLE, FALSE); - } else { - dbusmenu_menuitem_property_set_bool (switch_menuitem, DBUSMENU_MENUITEM_PROP_VISIBLE, TRUE); - } - } - } else if (g_strcmp0 (key, LOCKDOWN_KEY_SCREENSAVER) == 0) { - if (lock_menuitem != NULL) { - if (gconf_value_get_bool (value)) { - dbusmenu_menuitem_property_set_bool (lock_menuitem, DBUSMENU_MENUITEM_PROP_VISIBLE, FALSE); - dbusmenu_menuitem_property_set_bool (lock_separator, DBUSMENU_MENUITEM_PROP_VISIBLE, FALSE); - } else { - dbusmenu_menuitem_property_set_bool (lock_menuitem, DBUSMENU_MENUITEM_PROP_VISIBLE, TRUE); - dbusmenu_menuitem_property_set_bool (lock_separator, DBUSMENU_MENUITEM_PROP_VISIBLE, TRUE); - } - } + if (g_strcmp0 (key, LOCKDOWN_KEY_USER) == 0 || g_strcmp0 (key, LOCKDOWN_KEY_SCREENSAVER) == 0) { + rebuild_items(root_menuitem, dbus_interface); } return; |