[gnome-shell] gdm: Try harder to move focus to the first user



commit 3ed5f9cd15e5535b5fa17b0f5e6977f351dddda6
Author: Adel Gadllah <adel gadllah gmail com>
Date:   Fri Oct 5 10:00:32 2012 +0200

    gdm: Try harder to move focus to the first user
    
    _moveFocusToItems seems to be called to early causing
    clutter_actor_grab_key_focus not to be called.
    
    So queue another attempt with BEFORE_REDRAW priority when
    this happens to make sure we actually move the focus sucessfully.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=684650

 js/gdm/loginDialog.js |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)
---
diff --git a/js/gdm/loginDialog.js b/js/gdm/loginDialog.js
index 404cae7..3575ca2 100644
--- a/js/gdm/loginDialog.js
+++ b/js/gdm/loginDialog.js
@@ -25,6 +25,7 @@ const Gio = imports.gi.Gio;
 const GLib = imports.gi.GLib;
 const Gtk = imports.gi.Gtk;
 const Mainloop = imports.mainloop;
+const Meta = imports.gi.Meta;
 const Lang = imports.lang;
 const Pango = imports.gi.Pango;
 const Signals = imports.signals;
@@ -207,7 +208,13 @@ const UserList = new Lang.Class({
         if (global.stage.get_key_focus() != this.actor)
             return;
 
-        this.actor.navigate_focus(null, Gtk.DirectionType.TAB_FORWARD, false);
+        let focusSet = this.actor.navigate_focus(null, Gtk.DirectionType.TAB_FORWARD, false);
+        if (!focusSet) {
+            Meta.later_add(Meta.LaterType.BEFORE_REDRAW, Lang.bind(this, function() {
+                this._moveFocusToItems();
+                return false;
+            }));
+        }
     },
 
     _showItem: function(item) {



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]