summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Cameron <brian.cameron@sun.com>2006-08-03 02:36:50 +0000
committerBrian Cameron <bcameron@src.gnome.org>2006-08-03 02:36:50 +0000
commit31bacfe161c3d3aa5c88138e120dacca2d577a80 (patch)
treea6502c6251de13be23d9182d46bf97eb9af38aa1
parent1946d44240ee4991933f602e0dd92d29251d3b5b (diff)
downloadgdm-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--ChangeLog13
-rw-r--r--daemon/gdm.c13
-rw-r--r--gui/greeter/greeter_action_language.c3
-rw-r--r--gui/greeter/greeter_canvas_item.c18
-rw-r--r--gui/greeter/greeter_parser.c6
-rw-r--r--gui/greeter/greeter_session.c1
-rw-r--r--gui/greeter/greeter_system.c12
7 files changed, 43 insertions, 23 deletions
diff --git a/ChangeLog b/ChangeLog
index e6f60616..97b93869 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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