appDisplay: Change pages with page down/up keys

Add key bindings to app picker to allow change pages using
the page up/down keys.

https://bugzilla.gnome.org/show_bug.cgi?id=707979
This commit is contained in:
Carlos Soriano 2013-09-12 17:20:07 +02:00
parent f38091d96b
commit 7b7c4568b2

View File

@ -335,6 +335,19 @@ const AllView = new Lang.Class({
function() { function() {
this._displayingPopup = false; this._displayingPopup = false;
})); }));
this.actor.connect('notify::mapped', Lang.bind(this,
function() {
if (this.actor.mapped) {
this._keyPressEventId =
global.stage.connect('key-press-event',
Lang.bind(this, this._onKeyPressEvent));
} else {
if (this._keyPressEventId)
global.stage.disconnect(this._keyPressEventId);
this._keyPressEventId = 0;
}
}));
}, },
getCurrentPageY: function() { getCurrentPageY: function() {
@ -441,6 +454,21 @@ const AllView = new Lang.Class({
this._panning = false; this._panning = false;
}, },
_onKeyPressEvent: function(actor, event) {
if (this._displayingPopup)
return true;
if (event.get_key_symbol() == Clutter.Page_Up) {
this.goToPage(this._currentPage - 1);
return true;
} else if (event.get_key_symbol() == Clutter.Page_Down) {
this.goToPage(this._currentPage + 1);
return true;
}
return false;
},
_getItemId: function(item) { _getItemId: function(item) {
if (item instanceof Shell.App) if (item instanceof Shell.App)
return item.get_id(); return item.get_id();