gdm/0001-Don-t-show-lock-screen-option-if-locked-down.patch
2009-11-02 05:38:10 +00:00

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);