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
This commit is contained in:
Adel Gadllah 2012-10-05 10:00:32 +02:00
parent 17e70ff8ec
commit 3ed5f9cd15

View File

@ -25,6 +25,7 @@ const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib; const GLib = imports.gi.GLib;
const Gtk = imports.gi.Gtk; const Gtk = imports.gi.Gtk;
const Mainloop = imports.mainloop; const Mainloop = imports.mainloop;
const Meta = imports.gi.Meta;
const Lang = imports.lang; const Lang = imports.lang;
const Pango = imports.gi.Pango; const Pango = imports.gi.Pango;
const Signals = imports.signals; const Signals = imports.signals;
@ -207,7 +208,13 @@ const UserList = new Lang.Class({
if (global.stage.get_key_focus() != this.actor) if (global.stage.get_key_focus() != this.actor)
return; 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) { _showItem: function(item) {