61
61
static DbusmenuMenuitem * hibernate_mi = NULL;
62
62
static DbusmenuMenuitem * suspend_mi = NULL;
63
63
static DbusmenuMenuitem * logout_mi = NULL;
64
static DbusmenuMenuitem * restart_mi = NULL;
65
64
static DbusmenuMenuitem * shutdown_mi = NULL;
67
66
static gboolean can_hibernate = TRUE;
73
72
static DBusGProxy * up_prop_proxy = NULL;
75
74
static void device_menu_mgr_ensure_settings_client (DeviceMenuMgr* self);
76
static void setup_restart_watch (DeviceMenuMgr* self);
77
75
static void setup_up (DeviceMenuMgr* self);
78
76
static void device_menu_mgr_rebuild_items (DeviceMenuMgr *self);
79
77
static void lock_if_possible (DeviceMenuMgr* self);
107
105
self->apt_watcher = NULL;
108
106
self->root_item = dbusmenu_menuitem_new ();
109
setup_restart_watch(self);
111
108
g_idle_add(lock_screen_setup, NULL);
751
748
can_suspend && allow_suspend);
754
/* When the directory changes we need to figure out how our menu
757
restart_dir_changed (gpointer userdata)
759
DeviceMenuMgr* self = DEVICE_MENU_MGR (userdata);
760
gboolean restart_required = g_file_test("/var/run/reboot-required", G_FILE_TEST_EXISTS);
762
if (restart_required) {
763
if (supress_confirmations()) {
764
dbusmenu_menuitem_property_set (restart_mi,
766
_("Restart to Complete Update"));
768
dbusmenu_menuitem_property_set (restart_mi,
770
_("Restart to Complete Update\342\200\246"));
772
dbusmenu_menuitem_property_set (restart_mi,
774
"system-restart-panel");
775
if (self->session_dbus_interface != NULL) {
776
session_dbus_set_name (self->session_dbus_interface, ICON_RESTART);
779
if (supress_confirmations()) {
780
dbusmenu_menuitem_property_set(restart_mi, RESTART_ITEM_LABEL, _("Restart"));
782
dbusmenu_menuitem_property_set(restart_mi, RESTART_ITEM_LABEL, _("Restart\342\200\246"));
784
dbusmenu_menuitem_property_remove(restart_mi, RESTART_ITEM_ICON);
785
if (self->session_dbus_interface != NULL) {
786
session_dbus_set_name(self->session_dbus_interface, ICON_DEFAULT);
792
/* Buids a file watcher for the directory so that when it
793
changes we can check to see if our reboot-required is
796
setup_restart_watch (DeviceMenuMgr* self)
798
GFile * filedir = g_file_new_for_path("/var/run");
799
GFileMonitor * filemon = g_file_monitor_directory(filedir, G_FILE_MONITOR_NONE, NULL, NULL);
800
if (filemon != NULL) {
801
g_signal_connect (G_OBJECT(filemon),
803
G_CALLBACK(restart_dir_changed),
806
restart_dir_changed(self);
810
751
/* Ensures that we have a GConf client and if we build one
811
752
set up the signal handler. */