switcherPopup: Factor the initial selection into the base class

Only the application switcher needs to keep its own implementation
since it has two modes of operation depending on the binding.

https://bugzilla.gnome.org/show_bug.cgi?id=735976
This commit is contained in:
Rui Matos 2014-09-03 17:17:26 +02:00
parent 547cdf86cc
commit 2b1077aaa1
4 changed files with 6 additions and 37 deletions

View File

@ -378,15 +378,6 @@ const WindowSwitcherPopup = new Lang.Class({
return global.display.get_tab_list(Meta.TabList.NORMAL, workspace);
},
_initialSelection: function(backward, binding) {
if (binding == 'switch-windows-backward' || backward)
this._select(this._items.length - 1);
else if (this._items.length == 1)
this._select(0);
else
this._select(1);
},
_keyPressHandler: function(keysym, action) {
if (action == Meta.KeyBindingAction.SWITCH_WINDOWS) {
this._select(this._next());

View File

@ -146,17 +146,6 @@ const CtrlAltTabPopup = new Lang.Class({
this._switcherList = new CtrlAltTabSwitcher(this._items);
},
_initialSelection: function(backward, binding) {
if (binding == 'switch-panels') {
if (backward)
this._selectedIndex = this._items.length - 1;
} else if (binding == 'switch-panels-backward') {
if (!backward)
this._selectedIndex = this._items.length - 1;
}
this._select(this._selectedIndex);
},
_keyPressHandler: function(keysym, action) {
if (action == Meta.KeyBindingAction.SWITCH_PANELS)
this._select(this._next());

View File

@ -269,17 +269,6 @@ const InputSourcePopup = new Lang.Class({
this._switcherList = new InputSourceSwitcher(this._items);
},
_initialSelection: function(backward, binding) {
if (binding == 'switch-input-source') {
if (backward)
this._selectedIndex = this._items.length - 1;
} else if (binding == 'switch-input-source-backward') {
if (!backward)
this._selectedIndex = this._items.length - 1;
}
this._select(this._selectedIndex);
},
_keyPressHandler: function(keysym, action) {
if (action == this._action)
this._select(this._next());

View File

@ -103,7 +103,12 @@ const SwitcherPopup = new Lang.Class({
},
_initialSelection: function(backward, binding) {
throw new Error('Not implemented');
if (backward)
this._select(this._items.length - 1);
else if (this._items.length == 1)
this._select(0);
else
this._select(1);
},
show: function(backward, binding, mask) {
@ -135,11 +140,6 @@ const SwitcherPopup = new Lang.Class({
this.actor.show();
this.actor.get_allocation_box();
if (this._items.length > 1)
this._selectedIndex = 1;
else
this._selectedIndex = 0;
this._initialSelection(backward, binding);
// There's a race condition; if the user released Alt before