diff options
author | Brian Cameron <brian.cameron@sun.com> | 2006-08-03 02:32:39 +0000 |
---|---|---|
committer | Brian Cameron <bcameron@src.gnome.org> | 2006-08-03 02:32:39 +0000 |
commit | 0e388e8aa92ecbc44de27371b1d8362be35930ff (patch) | |
tree | 52b4411af8359675d42eba9e4e1e0c3404ff470e /gui | |
parent | 5f53a6ae01c25f3ee538891e1fa32c8f08835f11 (diff) | |
download | gdm-0e388e8aa92ecbc44de27371b1d8362be35930ff.tar.gz |
Fix error message that gets printed when you try to run GDM as non-root
2006-08-02 Brian Cameron <brian.cameron@sun.com>
* daemon/gdm.c: Fix error message that gets printed when
you try to run GDM as non-root user.
* gui/greeter/greeter_action_language.c,
gui/greeter/greeter_canvas_item.c,
gui/greeter/greeter_session.c,
gui/greeter/greeter_system.c: I think this time I finally fixed
the focus management in gdmgreeter so that when using the Options
button the focus remains in the entry.
* gui/greeter/greeter_parser.c: Only free the hash table if it
is not-NULL.
Diffstat (limited to 'gui')
-rw-r--r-- | gui/greeter/greeter_action_language.c | 3 | ||||
-rw-r--r-- | gui/greeter/greeter_canvas_item.c | 18 | ||||
-rw-r--r-- | gui/greeter/greeter_parser.c | 6 | ||||
-rw-r--r-- | gui/greeter/greeter_session.c | 1 | ||||
-rw-r--r-- | gui/greeter/greeter_system.c | 12 |
5 files changed, 21 insertions, 19 deletions
diff --git a/gui/greeter/greeter_action_language.c b/gui/greeter/greeter_action_language.c index b6ef37c0..f50ad898 100644 --- a/gui/greeter/greeter_action_language.c +++ b/gui/greeter/greeter_action_language.c @@ -334,8 +334,5 @@ greeter_language_handler (GreeterItemInfo *info, gpointer user_data) 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_canvas_item.c b/gui/greeter/greeter_canvas_item.c index ddd5341d..9e5f748f 100644 --- a/gui/greeter/greeter_canvas_item.c +++ b/gui/greeter/greeter_canvas_item.c @@ -127,6 +127,15 @@ activate_button (GtkWidget *widget, gpointer data) greeter_item_run_action_callback (id); } +void +menubar_done (GtkMenuShell *menushell, gpointer data) +{ + GreeterItemInfo *entry_info = greeter_lookup_id ("user-pw-entry"); + GtkWidget *entry = GNOME_CANVAS_WIDGET (entry_info->item)->widget; + + gtk_widget_grab_focus (entry); +} + static GtkWidget * make_menubar (void) { @@ -181,6 +190,9 @@ make_menubar (void) G_CALLBACK (gtk_main_quit), NULL); } + g_signal_connect (G_OBJECT(gtk_menu_item_get_submenu( + gtk_container_get_children(GTK_CONTAINER(menubar))->data)), "selection-done", G_CALLBACK (menubar_done), NULL); + return menubar; } @@ -230,7 +242,11 @@ greeter_options_handler (GreeterItemInfo *item, GtkWidget *menubar) static void greeter_item_run_button_action_callback (GtkButton *button, const char *id) { + GreeterItemInfo *entry_info = greeter_lookup_id ("user-pw-entry"); + GtkWidget *entry = GNOME_CANVAS_WIDGET (entry_info->item)->widget; + greeter_item_run_action_callback (id); + gtk_widget_grab_focus (entry); } void @@ -448,7 +464,7 @@ greeter_item_create_canvas_item (GreeterItemInfo *item) "height", (double)rect.height, "width", (double)rect.width, NULL); - + greeter_item_register_action_callback ("options_button", (ActionFunc)greeter_options_handler, menubar); diff --git a/gui/greeter/greeter_parser.c b/gui/greeter/greeter_parser.c index 9bbd59a9..9485175d 100644 --- a/gui/greeter/greeter_parser.c +++ b/gui/greeter/greeter_parser.c @@ -1774,8 +1774,10 @@ greeter_parse (const char *file, const char *datadir, /* Now we can whack the hash, we don't want to keep cached pixbufs around anymore */ - g_hash_table_destroy (pixbuf_hash); - pixbuf_hash = NULL; + if (pixbuf_hash != NULL) { + g_hash_table_destroy (pixbuf_hash); + pixbuf_hash = NULL; + } if G_UNLIKELY (!res) { diff --git a/gui/greeter/greeter_session.c b/gui/greeter/greeter_session.c index caa165fd..070dea80 100644 --- a/gui/greeter/greeter_session.c +++ b/gui/greeter/greeter_session.c @@ -254,7 +254,6 @@ 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 c8154c11..c4bc0f6f 100644 --- a/gui/greeter/greeter_system.c +++ b/gui/greeter/greeter_system.c @@ -70,46 +70,34 @@ 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 |