[gnome-shell] modalDialog: grab focus immediately, not after fade-in
- From: Dan Winship <danw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] modalDialog: grab focus immediately, not after fade-in
- Date: Mon, 21 Mar 2011 18:27:01 +0000 (UTC)
commit bad8dbc2d29204d4a02de4f1aaaf076a987ea7e5
Author: Dan Winship <danw gnome org>
Date: Tue Mar 15 16:05:40 2011 -0400
modalDialog: grab focus immediately, not after fade-in
If the user types Alt+F2 and then immediately starts typing, some keys
can get lost. Fix that by grabbing focus sooner.
https://bugzilla.gnome.org/show_bug.cgi?id=644857
js/ui/modalDialog.js | 10 ++++++----
js/ui/runDialog.js | 5 +----
2 files changed, 7 insertions(+), 8 deletions(-)
---
diff --git a/js/ui/modalDialog.js b/js/ui/modalDialog.js
index 45a1e3c..56bc1a2 100644
--- a/js/ui/modalDialog.js
+++ b/js/ui/modalDialog.js
@@ -148,19 +148,23 @@ ModalDialog.prototype = {
this._lightbox.show();
this._group.opacity = 0;
this._group.show();
+ this._initialKeyFocus.grab_key_focus();
Tweener.addTween(this._group,
{ opacity: 255,
time: OPEN_AND_CLOSE_TIME,
transition: 'easeOutQuad',
onComplete: Lang.bind(this,
function() {
- this._initialKeyFocus.grab_key_focus();
this.state = State.OPENED;
this.emit('opened');
- }),
+ })
});
},
+ setInitialKeyFocus: function(actor) {
+ this._initialKeyFocus = actor;
+ },
+
open: function(timestamp) {
if (this.state == State.OPENED || this.state == State.OPENING)
return true;
@@ -168,8 +172,6 @@ ModalDialog.prototype = {
if (!Main.pushModal(this._group, timestamp))
return false;
- global.stage.set_key_focus(this._group);
-
this._fadeOpen();
return true;
},
diff --git a/js/ui/runDialog.js b/js/ui/runDialog.js
index 2a02a3b..4279797 100644
--- a/js/ui/runDialog.js
+++ b/js/ui/runDialog.js
@@ -210,10 +210,7 @@ __proto__: ModalDialog.ModalDialog.prototype,
this._entryText = entry.clutter_text;
this.contentLayout.add(entry, { y_align: St.Align.START });
- this.connect('opened',
- Lang.bind(this, function() {
- this._entryText.grab_key_focus();
- }));
+ this.setInitialKeyFocus(this._entryText);
this._errorBox = new St.BoxLayout({ style_class: 'run-dialog-error-box' });
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]