summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Cameron <brian.cameron@sun.com>2006-06-16 23:19:00 +0000
committerBrian Cameron <bcameron@src.gnome.org>2006-06-16 23:19:00 +0000
commitd7be4783141e5ca36244b0ab5b7ba993503b410d (patch)
treeed8d49edc0742ea2903aebe8252b9c07ab98fd23
parent69b4b585d34a4ed70a612f4f15953cbe9fc546a6 (diff)
downloadgdm-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--ChangeLog7
-rw-r--r--gui/greeter/greeter_action_language.c6
-rw-r--r--gui/greeter/greeter_session.c6
-rw-r--r--gui/greeter/greeter_system.c14
4 files changed, 31 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 702b7b87..8b60f5ea 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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