aboutsummaryrefslogtreecommitdiff
path: root/src/session-service.c
diff options
context:
space:
mode:
authorTed Gould <ted@gould.cx>2010-03-12 22:18:55 -0600
committerTed Gould <ted@gould.cx>2010-03-12 22:18:55 -0600
commit2681e6476dbf2f0373c8791295f6dafd9d7158a1 (patch)
tree79e6c7778a6d8a247bc0a661b61f10b5970a1ee8 /src/session-service.c
parenteaf244dd1022818c3780b138497c79ff51bf0a54 (diff)
parent62a79745a976eb7459a9f3aaeb9f6fa7e021897f (diff)
downloadayatana-indicator-session-2681e6476dbf2f0373c8791295f6dafd9d7158a1.tar.gz
ayatana-indicator-session-2681e6476dbf2f0373c8791295f6dafd9d7158a1.tar.bz2
ayatana-indicator-session-2681e6476dbf2f0373c8791295f6dafd9d7158a1.zip
Make it so the panel icon can switch between two values based on whether the user needs to restart
Diffstat (limited to 'src/session-service.c')
-rw-r--r--src/session-service.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/session-service.c b/src/session-service.c
index 51a930a..ace4a7d 100644
--- a/src/session-service.c
+++ b/src/session-service.c
@@ -43,6 +43,7 @@ with this program. If not, see <http://www.gnu.org/licenses/>.
#include "gconf-helper.h"
+#include "session-dbus.h"
#include "users-service-dbus.h"
#include "lock-helper.h"
@@ -65,6 +66,7 @@ struct _ActivateData
static DBusGConnection *system_bus = NULL;
static DBusGProxy *gdm_proxy = NULL;
static UsersServiceDbus *dbus_interface = NULL;
+static SessionDbus *session_dbus = NULL;
static DbusmenuMenuitem *lock_menuitem = NULL;
static DbusmenuMenuitem *switch_menuitem = NULL;
@@ -621,6 +623,9 @@ restart_dir_changed (void)
dbusmenu_menuitem_property_set(restart_mi, RESTART_ITEM_LABEL, _("Restart Required..."));
}
dbusmenu_menuitem_property_set(restart_mi, RESTART_ITEM_ICON, "emblem-important");
+ if (session_dbus != NULL) {
+ session_dbus_set_name(session_dbus, ICON_RESTART);
+ }
} else {
if (supress_confirmations()) {
dbusmenu_menuitem_property_set(restart_mi, RESTART_ITEM_LABEL, _("Restart"));
@@ -628,6 +633,9 @@ restart_dir_changed (void)
dbusmenu_menuitem_property_set(restart_mi, RESTART_ITEM_LABEL, _("Restart..."));
}
dbusmenu_menuitem_property_remove(restart_mi, RESTART_ITEM_ICON);
+ if (session_dbus != NULL) {
+ session_dbus_set_name(session_dbus, ICON_DEFAULT);
+ }
}
return;
@@ -667,6 +675,8 @@ main (int argc, char ** argv)
INDICATOR_SERVICE_SIGNAL_SHUTDOWN,
G_CALLBACK(service_shutdown), NULL);
+ session_dbus = session_dbus_new();
+
g_idle_add(lock_screen_setup, NULL);
root_menuitem = dbusmenu_menuitem_new();