From e100d5583e340fa96f4e8c4aefae2d106c17a082 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Thu, 25 Mar 2010 13:09:23 -0500 Subject: Changing the menu item to 'Suspend' --- src/session-service.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/session-service.c b/src/session-service.c index c1c2e57..3b3106a 100644 --- a/src/session-service.c +++ b/src/session-service.c @@ -637,7 +637,7 @@ rebuild_items (DbusmenuMenuitem *root, if (can_suspend && allow_suspend) { suspend_mi = dbusmenu_menuitem_new(); - dbusmenu_menuitem_property_set(suspend_mi, DBUSMENU_MENUITEM_PROP_LABEL, _("Sleep")); + dbusmenu_menuitem_property_set(suspend_mi, DBUSMENU_MENUITEM_PROP_LABEL, _("Suspend")); dbusmenu_menuitem_child_append(root, suspend_mi); g_signal_connect(G_OBJECT(suspend_mi), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, G_CALLBACK(machine_sleep), "Suspend"); } -- cgit v1.2.3 From cbbb96c5255b9842546c8480c0b2b60da3955560 Mon Sep 17 00:00:00 2001 From: Gabor Kelemen Date: Mon, 29 Mar 2010 14:08:16 -0500 Subject: Use contexts properly --- src/dialog.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/dialog.c b/src/dialog.c index fba8013..51b1682 100644 --- a/src/dialog.c +++ b/src/dialog.c @@ -174,7 +174,7 @@ logout_dialog_new (LogoutDialogType type) "icon-name", icon_strings[type], "modal", TRUE, "resizable", FALSE, - "title", _(title_strings[type]), + "title", g_dpgettext2 (NULL, "title", title_strings[type]), "window-position", GTK_WIN_POS_CENTER_ALWAYS, /* Message Dialog */ "buttons", GTK_BUTTONS_NONE, @@ -197,9 +197,9 @@ logout_dialog_new (LogoutDialogType type) const gchar * button_text; if (allowed) { - button_text = _(button_strings[type]); + button_text = g_dpgettext2 (NULL, "button", button_strings[type]); } else { - button_text = _(button_auth_strings[type]); + button_text = g_dpgettext2 (NULL, "button auth", button_auth_strings[type]); } if (restart_required) { -- cgit v1.2.3 From 953b64bb904c94718ef822fc7ba3a2e71c64e147 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Thu, 1 Apr 2010 21:27:28 -0500 Subject: Seems that the message isn't always valid --- src/gtk-logout-helper.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/gtk-logout-helper.c b/src/gtk-logout-helper.c index 64fba14..b8923c6 100644 --- a/src/gtk-logout-helper.c +++ b/src/gtk-logout-helper.c @@ -68,7 +68,7 @@ consolekit_fallback (LogoutDialogType action) g_object_unref(proxy); if (error != NULL) { - g_error("Unable to signal ConsoleKit: %s", error->message); + g_error("Unable to signal ConsoleKit"); g_error_free(error); } -- cgit v1.2.3 From a8a52218ac55b27ed2b27ae44993bf2f35165e4d Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Tue, 6 Apr 2010 11:49:10 -0500 Subject: Actually pass the service in the callback --- src/session-service.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/session-service.c b/src/session-service.c index 3b3106a..c522748 100644 --- a/src/session-service.c +++ b/src/session-service.c @@ -545,7 +545,7 @@ rebuild_items (DbusmenuMenuitem *root, dbusmenu_menuitem_property_set (guest_mi, USER_ITEM_PROP_NAME, _("Guest Session")); dbusmenu_menuitem_property_set_bool (guest_mi, USER_ITEM_PROP_LOGGED_IN, FALSE); dbusmenu_menuitem_child_append (root, guest_mi); - g_signal_connect (G_OBJECT (guest_mi), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, G_CALLBACK (activate_guest_session), NULL); + g_signal_connect (G_OBJECT (guest_mi), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, G_CALLBACK (activate_guest_session), service); users_service_dbus_set_guest_item(service, guest_mi); } -- cgit v1.2.3 From 7a7161a2640f3b833ec4180c3c658de33042b011 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Tue, 6 Apr 2010 11:58:16 -0500 Subject: Adding some protection. We should always use protection. --- src/users-service-dbus.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src') diff --git a/src/users-service-dbus.c b/src/users-service-dbus.c index 86007c3..58490de 100644 --- a/src/users-service-dbus.c +++ b/src/users-service-dbus.c @@ -550,6 +550,7 @@ static void add_sessions_for_user (UsersServiceDbus *self, UserData *user) { + g_return_if_fail(IS_USERS_SERVICE_DBUS(self)); UsersServiceDbusPrivate *priv = USERS_SERVICE_DBUS_GET_PRIVATE (self); GError *error; GPtrArray *sessions; @@ -582,6 +583,7 @@ seat_proxy_session_added (DBusGProxy *seat_proxy, const gchar *session_id, UsersServiceDbus *service) { + g_return_if_fail(IS_USERS_SERVICE_DBUS(service)); UsersServiceDbusPrivate *priv = USERS_SERVICE_DBUS_GET_PRIVATE (service); uid_t uid; gboolean res; @@ -627,6 +629,7 @@ seat_proxy_session_removed (DBusGProxy *seat_proxy, const gchar *session_id, UsersServiceDbus *service) { + g_return_if_fail(IS_USERS_SERVICE_DBUS(service)); UsersServiceDbusPrivate *priv = USERS_SERVICE_DBUS_GET_PRIVATE (service); UserData *user; gchar *username; @@ -671,6 +674,7 @@ seat_proxy_session_removed (DBusGProxy *seat_proxy, static void sync_users (UsersServiceDbus *self) { + g_return_if_fail(IS_USERS_SERVICE_DBUS(self)); UsersServiceDbusPrivate *priv = USERS_SERVICE_DBUS_GET_PRIVATE (self); if (g_hash_table_size (priv->users) > 0) @@ -770,6 +774,7 @@ static gboolean session_is_login_window (UsersServiceDbus *self, const char *ssid) { + g_return_val_if_fail(IS_USERS_SERVICE_DBUS(self), FALSE); UsersServiceDbusPrivate *priv = USERS_SERVICE_DBUS_GET_PRIVATE (self); DBusGProxy *proxy = NULL; GError *error = NULL; @@ -805,6 +810,7 @@ session_is_login_window (UsersServiceDbus *self, static char * get_login_session (UsersServiceDbus *self) { + g_return_val_if_fail(IS_USERS_SERVICE_DBUS(self), NULL); UsersServiceDbusPrivate *priv = USERS_SERVICE_DBUS_GET_PRIVATE (self); gboolean can_activate; GError *error = NULL; @@ -871,6 +877,7 @@ activate_user_session (UsersServiceDbus *self, const char *seat, const char *ssid) { + g_return_val_if_fail(IS_USERS_SERVICE_DBUS(self), FALSE); UsersServiceDbusPrivate *priv = USERS_SERVICE_DBUS_GET_PRIVATE (self); DBusMessage *message = NULL; DBusMessage *reply = NULL; @@ -1057,6 +1064,8 @@ user_updated (DBusGProxy *proxy, gint users_service_dbus_get_user_count (UsersServiceDbus *self) { + g_return_val_if_fail(IS_USERS_SERVICE_DBUS(self), 0); + UsersServiceDbusPrivate *priv = USERS_SERVICE_DBUS_GET_PRIVATE (self); return priv->count; @@ -1065,6 +1074,8 @@ users_service_dbus_get_user_count (UsersServiceDbus *self) GList * users_service_dbus_get_user_list (UsersServiceDbus *self) { + g_return_val_if_fail(IS_USERS_SERVICE_DBUS(self), NULL); + UsersServiceDbusPrivate *priv = USERS_SERVICE_DBUS_GET_PRIVATE (self); return g_hash_table_get_values (priv->users); @@ -1074,6 +1085,7 @@ users_service_dbus_get_user_list (UsersServiceDbus *self) gboolean users_service_dbus_activate_guest_session (UsersServiceDbus *self) { + g_return_val_if_fail(IS_USERS_SERVICE_DBUS(self), FALSE); UsersServiceDbusPrivate *priv = USERS_SERVICE_DBUS_GET_PRIVATE (self); return org_gnome_DisplayManager_LocalDisplayFactory_switch_to_user(priv->gdm_local_proxy, "guest", NULL, NULL); } @@ -1083,6 +1095,7 @@ gboolean users_service_dbus_activate_user_session (UsersServiceDbus *self, UserData *user) { + g_return_val_if_fail(IS_USERS_SERVICE_DBUS(self), FALSE); UsersServiceDbusPrivate *priv = USERS_SERVICE_DBUS_GET_PRIVATE (self); return org_gnome_DisplayManager_LocalDisplayFactory_switch_to_user(priv->gdm_local_proxy, user->user_name, NULL, NULL); } @@ -1090,6 +1103,7 @@ users_service_dbus_activate_user_session (UsersServiceDbus *self, gboolean users_service_dbus_can_activate_session (UsersServiceDbus *self) { + g_return_val_if_fail(IS_USERS_SERVICE_DBUS(self), FALSE); UsersServiceDbusPrivate *priv = USERS_SERVICE_DBUS_GET_PRIVATE (self); gboolean can_activate = FALSE; GError *error = NULL; @@ -1124,6 +1138,7 @@ users_service_dbus_can_activate_session (UsersServiceDbus *self) void users_service_dbus_set_guest_item (UsersServiceDbus * self, DbusmenuMenuitem * mi) { + g_return_if_fail(IS_USERS_SERVICE_DBUS(self)); UsersServiceDbusPrivate *priv = USERS_SERVICE_DBUS_GET_PRIVATE (self); priv->guest_item = mi; -- cgit v1.2.3 From 07dcd3f24ee57e0ee895e457f1b07bd126c2facf Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Tue, 6 Apr 2010 17:24:42 -0500 Subject: Adding the restart and shutdown keys and functions to check them. --- src/gconf-helper.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/gconf-helper.h b/src/gconf-helper.h index 6f9bcb7..505c24f 100644 --- a/src/gconf-helper.h +++ b/src/gconf-helper.h @@ -36,6 +36,8 @@ with this program. If not, see . #define GLOBAL_DIR "/apps/indicator-session" #define SUPPRESS_KEY GLOBAL_DIR "/suppress_logout_restart_shutdown" #define LOGOUT_KEY GLOBAL_DIR "/suppress_logout_menuitem" +#define RESTART_KEY GLOBAL_DIR "/suppress_restart_menuitem" +#define SHUTDOWN_KEY GLOBAL_DIR "/suppress_shutdown_menuitem" typedef struct _RestartShutdownLogoutMenuItems { @@ -45,8 +47,10 @@ typedef struct _RestartShutdownLogoutMenuItems } RestartShutdownLogoutMenuItems; -void update_menu_entries(RestartShutdownLogoutMenuItems*, DbusmenuMenuitem * logoutitem); +void update_menu_entries(RestartShutdownLogoutMenuItems*); gboolean supress_confirmations (void); gboolean show_logout (void); +gboolean show_restart (void); +gboolean show_shutdown (void); #endif /* __GCONF_HELPER__ */ -- cgit v1.2.3 From 234ca9cd5a231b6beee298539203b4de4d27e5bc Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Tue, 6 Apr 2010 17:25:05 -0500 Subject: Filling out everything to check and update the shutdown/restart items --- src/gconf-helper.c | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 58 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/gconf-helper.c b/src/gconf-helper.c index 29d8526..4911dcb 100644 --- a/src/gconf-helper.c +++ b/src/gconf-helper.c @@ -36,6 +36,8 @@ with this program. If not, see . static GConfClient * gconf_client = NULL; static guint confirmation_notify = 0; static guint logout_notify = 0; +static guint restart_notify = 0; +static guint shutdown_notify = 0; gboolean supress_confirmations (void) { @@ -53,6 +55,22 @@ show_logout (void) { return !gconf_client_get_bool (gconf_client, LOGOUT_KEY, NULL) ; } +gboolean +show_restart (void) { + if(!gconf_client) { + gconf_client = gconf_client_get_default (); + } + return !gconf_client_get_bool (gconf_client, RESTART_KEY, NULL) ; +} + +gboolean +show_shutdown (void) { + if(!gconf_client) { + gconf_client = gconf_client_get_default (); + } + return !gconf_client_get_bool (gconf_client, SHUTDOWN_KEY, NULL) ; +} + static void update_menu_entries_callback (GConfClient *client, guint cnxn_id, GConfEntry *entry, gpointer data) { RestartShutdownLogoutMenuItems * restart_shutdown_logout_mi = (RestartShutdownLogoutMenuItems*) data; GConfValue * value = gconf_entry_get_value (entry); @@ -82,8 +100,30 @@ update_logout_callback (GConfClient *client, guint cnxn_id, GConfEntry *entry, } } +static void +update_restart_callback (GConfClient *client, guint cnxn_id, GConfEntry *entry, gpointer data) { + DbusmenuMenuitem * mi = (DbusmenuMenuitem*) data; + GConfValue * value = gconf_entry_get_value (entry); + const gchar * key = gconf_entry_get_key (entry); + + if(g_strcmp0 (key, RESTART_KEY) == 0) { + dbusmenu_menuitem_property_set_bool(mi, DBUSMENU_MENUITEM_PROP_VISIBLE, !gconf_value_get_bool(value)); + } +} + +static void +update_shutdown_callback (GConfClient *client, guint cnxn_id, GConfEntry *entry, gpointer data) { + DbusmenuMenuitem * mi = (DbusmenuMenuitem*) data; + GConfValue * value = gconf_entry_get_value (entry); + const gchar * key = gconf_entry_get_key (entry); + + if(g_strcmp0 (key, SHUTDOWN_KEY) == 0) { + dbusmenu_menuitem_property_set_bool(mi, DBUSMENU_MENUITEM_PROP_VISIBLE, !gconf_value_get_bool(value)); + } +} + void -update_menu_entries(RestartShutdownLogoutMenuItems * restart_shutdown_logout_mi, DbusmenuMenuitem * logoutitem) { +update_menu_entries(RestartShutdownLogoutMenuItems * restart_shutdown_logout_mi) { /* If we don't have a client, build one. */ if(!gconf_client) { gconf_client = gconf_client_get_default (); @@ -106,9 +146,25 @@ update_menu_entries(RestartShutdownLogoutMenuItems * restart_shutdown_logout_mi, logout_notify = 0; } + if (restart_notify != 0) { + gconf_client_notify_remove (gconf_client, restart_notify); + restart_notify = 0; + } + + if (shutdown_notify != 0) { + gconf_client_notify_remove (gconf_client, shutdown_notify); + shutdown_notify = 0; + } + confirmation_notify = gconf_client_notify_add (gconf_client, SUPPRESS_KEY, update_menu_entries_callback, restart_shutdown_logout_mi, NULL, NULL); logout_notify = gconf_client_notify_add (gconf_client, LOGOUT_KEY, - update_logout_callback, logoutitem, NULL, NULL); + update_logout_callback, restart_shutdown_logout_mi->logout_mi, NULL, NULL); + restart_notify = gconf_client_notify_add (gconf_client, RESTART_KEY, + update_restart_callback, restart_shutdown_logout_mi->restart_mi, NULL, NULL); + shutdown_notify = gconf_client_notify_add (gconf_client, SHUTDOWN_KEY, + update_shutdown_callback, restart_shutdown_logout_mi->shutdown_mi, NULL, NULL); + + return; } -- cgit v1.2.3 From 54f8f8b90005978ed2376d695bb22947f0878c0b Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Tue, 6 Apr 2010 17:25:22 -0500 Subject: Changing prototype to not have the same info twice. --- src/session-service.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/session-service.c b/src/session-service.c index c522748..054bb17 100644 --- a/src/session-service.c +++ b/src/session-service.c @@ -673,7 +673,7 @@ rebuild_items (DbusmenuMenuitem *root, restart_shutdown_logout_mi->restart_mi = restart_mi; restart_shutdown_logout_mi->shutdown_mi = shutdown_mi; - update_menu_entries(restart_shutdown_logout_mi, logout_mi); + update_menu_entries(restart_shutdown_logout_mi); if (g_file_test(DESKTOP_FILE, G_FILE_TEST_EXISTS)) { GAppInfo * appinfo = G_APP_INFO(g_desktop_app_info_new_from_filename(DESKTOP_FILE)); -- cgit v1.2.3 From 58cb1d4475110e662fa2d67717daa5b263c3331e Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Tue, 6 Apr 2010 17:26:41 -0500 Subject: Check to see if the shutdown and restart items should be shown on first run. --- src/session-service.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src') diff --git a/src/session-service.c b/src/session-service.c index 054bb17..4fc12a1 100644 --- a/src/session-service.c +++ b/src/session-service.c @@ -656,6 +656,7 @@ rebuild_items (DbusmenuMenuitem *root, } else { dbusmenu_menuitem_property_set(restart_mi, RESTART_ITEM_LABEL, _("Restart...")); } + dbusmenu_menuitem_property_set_bool(restart_mi, DBUSMENU_MENUITEM_PROP_VISIBLE, show_restart()); dbusmenu_menuitem_child_append(root, restart_mi); g_signal_connect(G_OBJECT(restart_mi), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, G_CALLBACK(show_dialog), "restart"); @@ -665,6 +666,7 @@ rebuild_items (DbusmenuMenuitem *root, } else { dbusmenu_menuitem_property_set(shutdown_mi, DBUSMENU_MENUITEM_PROP_LABEL, _("Shut Down...")); } + dbusmenu_menuitem_property_set_bool(shutdown_mi, DBUSMENU_MENUITEM_PROP_VISIBLE, show_shutdown()); dbusmenu_menuitem_child_append(root, shutdown_mi); g_signal_connect(G_OBJECT(shutdown_mi), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, G_CALLBACK(show_dialog), "shutdown"); -- cgit v1.2.3