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:
parent
547cdf86cc
commit
2b1077aaa1
@ -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());
|
||||
|
@ -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());
|
||||
|
@ -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());
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user