From 7b7c4568b2d9a605d7344d5e5da55c1082e8f221 Mon Sep 17 00:00:00 2001 From: Carlos Soriano Date: Thu, 12 Sep 2013 17:20:07 +0200 Subject: [PATCH] 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 --- js/ui/appDisplay.js | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js index e3545b099..262b46a93 100644 --- a/js/ui/appDisplay.js +++ b/js/ui/appDisplay.js @@ -335,6 +335,19 @@ const AllView = new Lang.Class({ function() { 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() { @@ -441,6 +454,21 @@ const AllView = new Lang.Class({ 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) { if (item instanceof Shell.App) return item.get_id();