summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam Jon McCann <jmccann@redhat.com>2008-10-13 22:12:19 +0000
committerWilliam Jon McCann <mccann@src.gnome.org>2008-10-13 22:12:19 +0000
commit2bf1b9b4a184a001b825f1330313dd5fa1e7caf1 (patch)
tree0edbf6cda3c9767bcc5a903fdc43e0d680158fe5
parentde141581541c6bb75baa1d05d7bcfefdac8f84b6 (diff)
downloadgdm-2bf1b9b4a184a001b825f1330313dd5fa1e7caf1.tar.gz
Add Lock Screen menu item.
2008-10-13 William Jon McCann <jmccann@redhat.com> * gui/user-switch-applet/applet.c (menuitem_style_set_cb), (on_lock_screen_activate), (on_login_screen_activate), (create_sub_menu): Add Lock Screen menu item. svn path=/trunk/; revision=6565
-rw-r--r--gui/user-switch-applet/applet.c29
1 files changed, 27 insertions, 2 deletions
diff --git a/gui/user-switch-applet/applet.c b/gui/user-switch-applet/applet.c
index 573639fa..59a0d528 100644
--- a/gui/user-switch-applet/applet.c
+++ b/gui/user-switch-applet/applet.c
@@ -57,6 +57,7 @@ typedef struct _GdmAppletData
GtkWidget *menuitem;
GtkWidget *menu;
GtkWidget *separator_item;
+ GtkWidget *lock_screen_item;
GtkWidget *login_screen_item;
GSList *items;
@@ -691,6 +692,8 @@ menuitem_style_set_cb (GtkWidget *menuitem,
if (menuitem == adata->login_screen_item) {
icon_name = "gdm";
+ } else if (menuitem == adata->lock_screen_item) {
+ icon_name = "system-lock-screen";
} else {
icon_name = GTK_STOCK_MISSING_IMAGE;
}
@@ -936,7 +939,18 @@ on_manager_user_is_logged_in_changed (GdmUserManager *manager,
}
static void
-login_screen_activate_cb (GtkMenuItem *item,
+on_lock_screen_activate (GtkMenuItem *item,
+ gpointer data)
+{
+ GdmAppletData *adata;
+
+ adata = data;
+
+ maybe_lock_screen (adata);
+}
+
+static void
+on_login_screen_activate (GtkMenuItem *item,
gpointer data)
{
GdmAppletData *adata;
@@ -994,6 +1008,17 @@ create_sub_menu (GdmAppletData *adata)
adata->items = g_slist_prepend (adata->items, adata->separator_item);
gtk_widget_show (adata->separator_item);
+ adata->lock_screen_item = gtk_image_menu_item_new_with_label (_("Lock Screen..."));
+ gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (adata->lock_screen_item),
+ gtk_image_new ());
+ gtk_menu_shell_append (GTK_MENU_SHELL (adata->menu),
+ adata->lock_screen_item);
+ g_signal_connect (adata->lock_screen_item, "style-set",
+ 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);
+
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),
gtk_image_new ());
@@ -1004,7 +1029,7 @@ create_sub_menu (GdmAppletData *adata)
g_signal_connect (adata->login_screen_item, "destroy",
G_CALLBACK (menuitem_destroy_cb), adata);
g_signal_connect (adata->login_screen_item, "activate",
- G_CALLBACK (login_screen_activate_cb), adata);
+ G_CALLBACK (on_login_screen_activate), adata);
adata->items = g_slist_prepend (adata->items, adata->login_screen_item);
gtk_widget_show (adata->login_screen_item);