[gnome-shell] view-selector: Add keyboard shortcut for view switching
- From: Florian Müllner <fmuellner src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] view-selector: Add keyboard shortcut for view switching
- Date: Mon, 29 Nov 2010 15:38:58 +0000 (UTC)
commit ffd7eaede5cc76efdbca487209c6b01199d23c0d
Author: Florian Müllner <fmuellner gnome org>
Date: Mon Oct 4 16:05:32 2010 +0200
view-selector: Add keyboard shortcut for view switching
As the view selector is a tabbed interface, use the default keyboard
shortcut of Ctrl-PageUp/PageDown of GtkNotebook for switching between
views.
https://bugzilla.gnome.org/show_bug.cgi?id=634948
js/ui/viewSelector.js | 34 ++++++++++++++++++++++++++++++++++
1 files changed, 34 insertions(+), 0 deletions(-)
---
diff --git a/js/ui/viewSelector.js b/js/ui/viewSelector.js
index d0d0676..368fc30 100644
--- a/js/ui/viewSelector.js
+++ b/js/ui/viewSelector.js
@@ -460,6 +460,29 @@ ViewSelector.prototype = {
this._switchTab(this._tabs[0]);
},
+ _nextTab: function() {
+ if (this._tabs.length == 0 ||
+ this._tabs[this._tabs.length - 1] == this._activeTab)
+ return;
+
+ for (let i = 0; i < this._tabs.length; i++)
+ if (this._tabs[i] == this._activeTab) {
+ this._switchTab(this._tabs[i + 1]);
+ return;
+ }
+ },
+
+ _prevTab: function() {
+ if (this._tabs.length == 0 || this._tabs[0] == this._activeTab)
+ return;
+
+ for (let i = 0; i < this._tabs.length; i++)
+ if (this._tabs[i] == this._activeTab) {
+ this._switchTab(this._tabs[i - 1]);
+ return;
+ }
+ },
+
_getPreferredTabBarWidth: function(box, forHeight, alloc) {
let children = box.get_children();
for (let i = 0; i < children.length; i++) {
@@ -521,10 +544,21 @@ ViewSelector.prototype = {
if (focus != stage)
return false;
+ let modifiers = Shell.get_event_state(event);
let symbol = event.get_key_symbol();
if (symbol == Clutter.Escape) {
Main.overview.hide();
return true;
+ } else if (modifiers & Clutter.ModifierType.CONTROL_MASK) {
+ if (symbol == Clutter.Page_Up) {
+ if (!this._searchActive)
+ this._prevTab();
+ return true;
+ } else if (symbol == Clutter.Page_Down) {
+ if (!this._searchActive)
+ this._nextTab();
+ return true;
+ }
}
return false;
},
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]