diff options
author | Brian Cameron <brian.cameron@sun.com> | 2006-08-03 02:36:50 +0000 |
---|---|---|
committer | Brian Cameron <bcameron@src.gnome.org> | 2006-08-03 02:36:50 +0000 |
commit | 31bacfe161c3d3aa5c88138e120dacca2d577a80 (patch) | |
tree | a6502c6251de13be23d9182d46bf97eb9af38aa1 | |
parent | 1946d44240ee4991933f602e0dd92d29251d3b5b (diff) | |
download | gdm-31bacfe161c3d3aa5c88138e120dacca2d577a80.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.
-rw-r--r-- | ChangeLog | 13 | ||||
-rw-r--r-- | daemon/gdm.c | 13 | ||||
-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 |
7 files changed, 43 insertions, 23 deletions
@@ -1,3 +1,16 @@ +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. + 2006-07-31 Brian Cameron <brian.cameron@sun.com> * Release 2.14.10: diff --git a/daemon/gdm.c b/daemon/gdm.c index 2f835556..51ed879e 100644 --- a/daemon/gdm.c +++ b/daemon/gdm.c @@ -1433,7 +1433,8 @@ main (int argc, char *argv[]) /* XDM compliant error message */ if G_UNLIKELY (getuid () != 0) { /* make sure the pid file doesn't get wiped */ - gdm_fail (_("Only root wants to run GDM\n")); + gdm_error (_("Only root wants to run GDM\n")); + exit (-1); } main_loop = g_main_loop_new (NULL, FALSE); @@ -1448,6 +1449,13 @@ main (int argc, char *argv[]) sig.sa_flags = SA_RESTART; sigemptyset (&sig.sa_mask); + /* Parse configuration file */ + gdm_config_parse (); + + /* + * Do not call gdm_fail before calling gdm_config_parse () + * since the gdm_fail function uses config data + */ if G_UNLIKELY (sigaction (SIGTERM, &sig, NULL) < 0) gdm_fail (_("%s: Error setting up %s signal handler: %s"), "main", "TERM", strerror (errno)); @@ -1459,9 +1467,6 @@ main (int argc, char *argv[]) /* get the name of the root user */ gdm_root_user (); - /* Parse configuration file */ - gdm_config_parse (); - pidfile = gdm_get_value_string (GDM_KEY_PID_FILE); /* Check if another gdm process is already running */ diff --git a/gui/greeter/greeter_action_language.c b/gui/greeter/greeter_action_language.c index 4d546f2f..83a20d1a 100644 --- a/gui/greeter/greeter_action_language.c +++ b/gui/greeter/greeter_action_language.c @@ -334,8 +334,5 @@ 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_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 b81e05bf..22ceb274 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 c7a9113e..1c07409e 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 |