From b971eb1038cb92ed8211b68a7d2a99a98d86ed7f Mon Sep 17 00:00:00 2001
From: Vincent Untz <vuntz@gnome.org>
Date: Wed, 12 Jan 2011 18:38:46 +0100
Subject: [PATCH] Correctly give focus to the user chooser on startup

We manually handle how focus works in the GdmChooserWidget container,
and we try to automatically move the focus to the treeview inside the
chooser. However, it fails the first time because the treeview is not
realized yet and the logic in the code assumes that if focus moved to
the chooser, it moved to the treeview, so later attempt to get the focus
grabbed by the treeview are just ignored.

It works fine when using gtk_widget_child_focus() to give the focus to
the treeview. And this makes more sense since the chooser is a container
anyway.

https://bugzilla.gnome.org/show_bug.cgi?id=629310
---
 gui/simple-greeter/gdm-chooser-widget.c |    6 +-----
 1 files changed, 1 insertions(+), 5 deletions(-)

diff --git a/gui/simple-greeter/gdm-chooser-widget.c b/gui/simple-greeter/gdm-chooser-widget.c
index db2d9b2..ebbfdb9 100644
--- a/gui/simple-greeter/gdm-chooser-widget.c
+++ b/gui/simple-greeter/gdm-chooser-widget.c
@@ -910,17 +910,13 @@ _grab_focus (GtkWidget *widget)
 
         foc_widget = GDM_CHOOSER_WIDGET (widget)->priv->items_view;
         g_debug ("GdmChooserWidget: grabbing focus");
-        if (! gtk_widget_get_realized (foc_widget)) {
-                g_debug ("GdmChooserWidget: not grabbing focus - not realized");
-                return;
-        }
 
         if (gtk_widget_has_focus (foc_widget)) {
                 g_debug ("GdmChooserWidget: not grabbing focus - already has it");
                 return;
         }
 
-        gtk_widget_grab_focus (foc_widget);
+        gtk_widget_child_focus (foc_widget, GTK_DIR_TAB_FORWARD);
 }
 
 static void
--
1.7.3.4
