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
This commit is contained in:
Florian Müllner 2010-10-04 16:05:32 +02:00
parent 688a315cbf
commit ffd7eaede5

View File

@ -460,6 +460,29 @@ ViewSelector.prototype = {
this._switchTab(this._tabs[0]); 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) { _getPreferredTabBarWidth: function(box, forHeight, alloc) {
let children = box.get_children(); let children = box.get_children();
for (let i = 0; i < children.length; i++) { for (let i = 0; i < children.length; i++) {
@ -521,10 +544,21 @@ ViewSelector.prototype = {
if (focus != stage) if (focus != stage)
return false; return false;
let modifiers = Shell.get_event_state(event);
let symbol = event.get_key_symbol(); let symbol = event.get_key_symbol();
if (symbol == Clutter.Escape) { if (symbol == Clutter.Escape) {
Main.overview.hide(); Main.overview.hide();
return true; 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; return false;
}, },