summaryrefslogtreecommitdiff
path: root/gui
diff options
context:
space:
mode:
authorBrian Cameron <brian.cameron@sun.com>2006-08-03 02:32:39 +0000
committerBrian Cameron <bcameron@src.gnome.org>2006-08-03 02:32:39 +0000
commit0e388e8aa92ecbc44de27371b1d8362be35930ff (patch)
tree52b4411af8359675d42eba9e4e1e0c3404ff470e /gui
parent5f53a6ae01c25f3ee538891e1fa32c8f08835f11 (diff)
downloadgdm-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.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
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