diff options
author | Brian Cameron <brian.cameron@sun.com> | 2006-06-16 23:19:00 +0000 |
---|---|---|
committer | Brian Cameron <bcameron@src.gnome.org> | 2006-06-16 23:19:00 +0000 |
commit | d7be4783141e5ca36244b0ab5b7ba993503b410d (patch) | |
tree | ed8d49edc0742ea2903aebe8252b9c07ab98fd23 | |
parent | 69b4b585d34a4ed70a612f4f15953cbe9fc546a6 (diff) | |
download | gdm-d7be4783141e5ca36244b0ab5b7ba993503b410d.tar.gz |
Make sure focus is returned to entry after dialogs are launched from the
2006-06-16 Brian Cameron <brian.cameron@sun.com>
* gui/greeter/greeter_action_language.c,
gui/greeter/greeter_session.c, gui/greeter/greeter_system.c:
Make sure focus is returned to entry after dialogs are launched
from the options button.
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | gui/greeter/greeter_action_language.c | 6 | ||||
-rw-r--r-- | gui/greeter/greeter_session.c | 6 | ||||
-rw-r--r-- | gui/greeter/greeter_system.c | 14 |
4 files changed, 31 insertions, 2 deletions
@@ -1,5 +1,12 @@ 2006-06-16 Brian Cameron <brian.cameron@sun.com> + * gui/greeter/greeter_action_language.c, + gui/greeter/greeter_session.c, gui/greeter/greeter_system.c: + Make sure focus is returned to entry after dialogs are launched + from the options button. + +2006-06-16 Brian Cameron <brian.cameron@sun.com> + * pixmaps/nobody.png: Updated so it uses official GNOME logo. Fixes bug #343571. Image provided by Diana Fong <dfong@redhat.com>. diff --git a/gui/greeter/greeter_action_language.c b/gui/greeter/greeter_action_language.c index d01780e0..4d546f2f 100644 --- a/gui/greeter/greeter_action_language.c +++ b/gui/greeter/greeter_action_language.c @@ -213,6 +213,9 @@ tree_row_activated (GtkTreeView *view, void greeter_language_handler (void) { + GreeterItemInfo *entry_info = greeter_lookup_id ("user-pw-entry"); + GtkWidget *entry = GNOME_CANVAS_WIDGET (entry_info->item)->widget; + GtkWidget *view = NULL; if (dialog == NULL) @@ -331,5 +334,8 @@ greeter_language_handler (void) if (dialog) gtk_widget_hide (dialog); + + /* Make sure entry has focus after button press */ + gtk_widget_grab_focus (entry); } diff --git a/gui/greeter/greeter_session.c b/gui/greeter/greeter_session.c index c5379c80..cc30452c 100644 --- a/gui/greeter/greeter_session.c +++ b/gui/greeter/greeter_session.c @@ -38,6 +38,7 @@ #include "greeter_item_pam.h" #include "greeter_configuration.h" #include "greeter_events.h" +#include "greeter_parser.h" #define LAST_SESSION "Last" #define LAST_LANGUAGE "Last" @@ -186,7 +187,7 @@ greeter_session_lookup (const char *saved_session) g_free (secondmsg); } } - + return session; } @@ -348,6 +349,8 @@ static void greeter_session_handler (GreeterItemInfo *info, gpointer user_data) { + GreeterItemInfo *entry_info = greeter_lookup_id ("user-pw-entry"); + GtkWidget *entry = GNOME_CANVAS_WIDGET (entry_info->item)->widget; GSList *tmp; int ret; @@ -399,6 +402,7 @@ greeter_session_handler (GreeterItemInfo *info, tmp = tmp->next; } } + gtk_widget_grab_focus (entry); } void diff --git a/gui/greeter/greeter_system.c b/gui/greeter/greeter_system.c index addde037..c7a9113e 100644 --- a/gui/greeter/greeter_system.c +++ b/gui/greeter/greeter_system.c @@ -29,6 +29,7 @@ #include "greeter_system.h" #include "greeter_item.h" #include "greeter_item_ulist.h" +#include "greeter_parser.h" #include "gdm.h" #include "gdmcommon.h" #include "gdmconfig.h" @@ -69,35 +70,46 @@ bin_exists (const char *command) static void query_greeter_restart_handler (void) { + GreeterItemInfo *entry_info = greeter_lookup_id ("user-pw-entry"); + GtkWidget *entry = GNOME_CANVAS_WIDGET (entry_info->item)->widget; + if (gdm_wm_warn_dialog (_("Are you sure you want to restart the computer?"), "", _("_Restart"), NULL, TRUE) == GTK_RESPONSE_YES) { closelog (); _exit (DISPLAY_REBOOT); } + gtk_widget_grab_focus (entry); } - static void query_greeter_halt_handler (void) { + GreeterItemInfo *entry_info = greeter_lookup_id ("user-pw-entry"); + GtkWidget *entry = GNOME_CANVAS_WIDGET (entry_info->item)->widget; + if (gdm_wm_warn_dialog (_("Are you sure you want to Shut Down the computer?"), "", _("Shut _Down"), NULL, TRUE) == GTK_RESPONSE_YES) { closelog (); _exit (DISPLAY_HALT); } + gtk_widget_grab_focus (entry); } static void query_greeter_suspend_handler (void) { + GreeterItemInfo *entry_info = greeter_lookup_id ("user-pw-entry"); + GtkWidget *entry = GNOME_CANVAS_WIDGET (entry_info->item)->widget; + if (gdm_wm_warn_dialog (_("Are you sure you want to suspend the computer?"), "", _("_Suspend"), NULL, TRUE) == GTK_RESPONSE_YES) { /* suspend interruption */ printf ("%c%c%c\n", STX, BEL, GDM_INTERRUPT_SUSPEND); fflush (stdout); } + gtk_widget_grab_focus (entry); } static void |