89 lines
4.6 KiB
Diff
89 lines
4.6 KiB
Diff
diff -up gdm-2.28.1/gui/user-switch-applet/applet.c.dont-show-lock-screen-if-locked-down gdm-2.28.1/gui/user-switch-applet/applet.c
|
|
--- gdm-2.28.1/gui/user-switch-applet/applet.c.dont-show-lock-screen-if-locked-down 2009-10-19 18:12:45.000000000 -0400
|
|
+++ gdm-2.28.1/gui/user-switch-applet/applet.c 2009-10-31 19:57:21.700544070 -0400
|
|
@@ -44,7 +44,9 @@
|
|
#include "gdm-entry-menu-item.h"
|
|
|
|
#define LOCKDOWN_DIR "/desktop/gnome/lockdown"
|
|
-#define LOCKDOWN_KEY LOCKDOWN_DIR "/disable_user_switching"
|
|
+#define LOCKDOWN_USER_SWITCHING_KEY LOCKDOWN_DIR "/disable_user_switching"
|
|
+#define LOCKDOWN_LOCK_SCREEN_KEY LOCKDOWN_DIR "/disable_lock_screen"
|
|
+#define LOCKDOWN_COMMAND_LINE_KEY LOCKDOWN_DIR "/disable_command_line"
|
|
|
|
typedef enum {
|
|
GSM_PRESENCE_STATUS_AVAILABLE = 0,
|
|
@@ -1163,7 +1165,11 @@ create_sub_menu (GdmAppletData *adata)
|
|
G_CALLBACK (menuitem_style_set_cb), adata);
|
|
g_signal_connect (adata->lock_screen_item, "activate",
|
|
G_CALLBACK (on_lock_screen_activate), adata);
|
|
- gtk_widget_show (adata->lock_screen_item);
|
|
+ if (gconf_client_get_bool (adata->client, LOCKDOWN_LOCK_SCREEN_KEY, NULL)) {
|
|
+ gtk_widget_hide (adata->lock_screen_item);
|
|
+ } else {
|
|
+ gtk_widget_show (adata->lock_screen_item);
|
|
+ }
|
|
|
|
adata->login_screen_item = gtk_image_menu_item_new_with_label (_("Switch User"));
|
|
gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (adata->login_screen_item),
|
|
@@ -1174,7 +1180,7 @@ create_sub_menu (GdmAppletData *adata)
|
|
G_CALLBACK (menuitem_style_set_cb), adata);
|
|
g_signal_connect (adata->login_screen_item, "activate",
|
|
G_CALLBACK (on_login_screen_activate), adata);
|
|
- /* Only show switch user if there are other users */
|
|
+ update_switch_user (adata);
|
|
|
|
adata->quit_session_item = gtk_image_menu_item_new_with_label (_("Quit..."));
|
|
gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (adata->quit_session_item),
|
|
@@ -1229,11 +1235,17 @@ client_notify_lockdown_func (GConfClient
|
|
return;
|
|
}
|
|
|
|
- if (strcmp (key, LOCKDOWN_KEY) == 0) {
|
|
+ if (strcmp (key, LOCKDOWN_USER_SWITCHING_KEY) == 0) {
|
|
if (gconf_value_get_bool (value)) {
|
|
- set_menu_visibility (adata, FALSE);
|
|
+ gtk_widget_hide (adata->login_screen_item);
|
|
} else {
|
|
- set_menu_visibility (adata, TRUE);
|
|
+ gtk_widget_show (adata->login_screen_item);
|
|
+ }
|
|
+ } else if (strcmp (key, LOCKDOWN_LOCK_SCREEN_KEY) == 0) {
|
|
+ if (gconf_value_get_bool (value)) {
|
|
+ gtk_widget_hide (adata->lock_screen_item);
|
|
+ } else {
|
|
+ gtk_widget_show (adata->lock_screen_item);
|
|
}
|
|
}
|
|
}
|
|
@@ -1430,7 +1442,7 @@ fill_applet (PanelApplet *applet)
|
|
|
|
/* Hide the admin context menu items if locked down or no cmd-line */
|
|
if (gconf_client_get_bool (adata->client,
|
|
- "/desktop/gnome/lockdown/inhibit_command_line",
|
|
+ LOCKDOWN_COMMAND_LINE_KEY,
|
|
NULL) ||
|
|
panel_applet_get_locked_down (applet)) {
|
|
bonobo_ui_component_set_prop (popup_component,
|
|
@@ -1502,14 +1514,19 @@ fill_applet (PanelApplet *applet)
|
|
adata->manager = gdm_user_manager_ref_default ();
|
|
setup_current_user (adata);
|
|
|
|
+ gconf_client_add_dir (adata->client,
|
|
+ LOCKDOWN_DIR,
|
|
+ GCONF_CLIENT_PRELOAD_ONELEVEL,
|
|
+ NULL);
|
|
+
|
|
adata->client_notify_lockdown_id = gconf_client_notify_add (adata->client,
|
|
- LOCKDOWN_KEY,
|
|
+ LOCKDOWN_DIR,
|
|
(GConfClientNotifyFunc)client_notify_lockdown_func,
|
|
adata,
|
|
NULL,
|
|
NULL);
|
|
|
|
- if (gconf_client_get_bool (adata->client, LOCKDOWN_KEY, NULL)) {
|
|
+ if (gconf_client_get_bool (adata->client, LOCKDOWN_USER_SWITCHING_KEY, NULL)) {
|
|
set_menu_visibility (adata, FALSE);
|
|
} else {
|
|
set_menu_visibility (adata, TRUE);
|