switcherPopup: Move _createSwitcher implementations into constructors
We don't really need this step as a separate method since all implementations are supposed to be created and shown immediately. This also ensures that we have items to show in all subclasses. https://bugzilla.gnome.org/show_bug.cgi?id=735976
This commit is contained in:
parent
7653175c6f
commit
547cdf86cc
@ -58,6 +58,14 @@ const AppSwitcherPopup = new Lang.Class({
|
|||||||
this._currentWindow = -1;
|
this._currentWindow = -1;
|
||||||
|
|
||||||
this.thumbnailsVisible = false;
|
this.thumbnailsVisible = false;
|
||||||
|
|
||||||
|
let apps = Shell.AppSystem.get_default().get_running ();
|
||||||
|
|
||||||
|
if (apps.length == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
this._switcherList = new AppSwitcher(apps, this);
|
||||||
|
this._items = this._switcherList.icons;
|
||||||
},
|
},
|
||||||
|
|
||||||
_allocate: function (actor, box, flags) {
|
_allocate: function (actor, box, flags) {
|
||||||
@ -99,20 +107,6 @@ const AppSwitcherPopup = new Lang.Class({
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
_createSwitcher: function() {
|
|
||||||
let apps = Shell.AppSystem.get_default().get_running ();
|
|
||||||
|
|
||||||
if (apps.length == 0)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
this._switcherList = new AppSwitcher(apps, this);
|
|
||||||
this._items = this._switcherList.icons;
|
|
||||||
if (this._items.length == 0)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
},
|
|
||||||
|
|
||||||
_initialSelection: function(backward, binding) {
|
_initialSelection: function(backward, binding) {
|
||||||
if (binding == 'switch-group') {
|
if (binding == 'switch-group') {
|
||||||
if (backward) {
|
if (backward) {
|
||||||
@ -365,9 +359,18 @@ const WindowSwitcherPopup = new Lang.Class({
|
|||||||
Name: 'WindowSwitcherPopup',
|
Name: 'WindowSwitcherPopup',
|
||||||
Extends: SwitcherPopup.SwitcherPopup,
|
Extends: SwitcherPopup.SwitcherPopup,
|
||||||
|
|
||||||
_init: function(items) {
|
_init: function() {
|
||||||
this.parent(items);
|
this.parent();
|
||||||
this._settings = new Gio.Settings({ schema_id: 'org.gnome.shell.window-switcher' });
|
this._settings = new Gio.Settings({ schema_id: 'org.gnome.shell.window-switcher' });
|
||||||
|
|
||||||
|
let windows = this._getWindowList();
|
||||||
|
|
||||||
|
if (windows.length == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
let mode = this._settings.get_enum('app-icon-mode');
|
||||||
|
this._switcherList = new WindowList(windows, mode);
|
||||||
|
this._items = this._switcherList.icons;
|
||||||
},
|
},
|
||||||
|
|
||||||
_getWindowList: function() {
|
_getWindowList: function() {
|
||||||
@ -375,22 +378,6 @@ const WindowSwitcherPopup = new Lang.Class({
|
|||||||
return global.display.get_tab_list(Meta.TabList.NORMAL, workspace);
|
return global.display.get_tab_list(Meta.TabList.NORMAL, workspace);
|
||||||
},
|
},
|
||||||
|
|
||||||
_createSwitcher: function() {
|
|
||||||
let windows = this._getWindowList();
|
|
||||||
|
|
||||||
if (windows.length == 0)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
let mode = this._settings.get_enum('app-icon-mode');
|
|
||||||
this._switcherList = new WindowList(windows, mode);
|
|
||||||
this._items = this._switcherList.icons;
|
|
||||||
|
|
||||||
if (this._items.length == 0)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
},
|
|
||||||
|
|
||||||
_initialSelection: function(backward, binding) {
|
_initialSelection: function(backward, binding) {
|
||||||
if (binding == 'switch-windows-backward' || backward)
|
if (binding == 'switch-windows-backward' || backward)
|
||||||
this._select(this._items.length - 1);
|
this._select(this._items.length - 1);
|
||||||
|
@ -140,9 +140,10 @@ const CtrlAltTabPopup = new Lang.Class({
|
|||||||
Name: 'CtrlAltTabPopup',
|
Name: 'CtrlAltTabPopup',
|
||||||
Extends: SwitcherPopup.SwitcherPopup,
|
Extends: SwitcherPopup.SwitcherPopup,
|
||||||
|
|
||||||
_createSwitcher: function() {
|
_init: function(items) {
|
||||||
|
this.parent(items);
|
||||||
|
|
||||||
this._switcherList = new CtrlAltTabSwitcher(this._items);
|
this._switcherList = new CtrlAltTabSwitcher(this._items);
|
||||||
return true;
|
|
||||||
},
|
},
|
||||||
|
|
||||||
_initialSelection: function(backward, binding) {
|
_initialSelection: function(backward, binding) {
|
||||||
|
@ -265,11 +265,8 @@ const InputSourcePopup = new Lang.Class({
|
|||||||
|
|
||||||
this._action = action;
|
this._action = action;
|
||||||
this._actionBackward = actionBackward;
|
this._actionBackward = actionBackward;
|
||||||
},
|
|
||||||
|
|
||||||
_createSwitcher: function() {
|
|
||||||
this._switcherList = new InputSourceSwitcher(this._items);
|
this._switcherList = new InputSourceSwitcher(this._items);
|
||||||
return true;
|
|
||||||
},
|
},
|
||||||
|
|
||||||
_initialSelection: function(backward, binding) {
|
_initialSelection: function(backward, binding) {
|
||||||
|
@ -102,16 +102,12 @@ const SwitcherPopup = new Lang.Class({
|
|||||||
this._switcherList.actor.allocate(childBox, flags);
|
this._switcherList.actor.allocate(childBox, flags);
|
||||||
},
|
},
|
||||||
|
|
||||||
_createSwitcher: function() {
|
|
||||||
throw new Error('Not implemented');
|
|
||||||
},
|
|
||||||
|
|
||||||
_initialSelection: function(backward, binding) {
|
_initialSelection: function(backward, binding) {
|
||||||
throw new Error('Not implemented');
|
throw new Error('Not implemented');
|
||||||
},
|
},
|
||||||
|
|
||||||
show: function(backward, binding, mask) {
|
show: function(backward, binding, mask) {
|
||||||
if (!this._createSwitcher())
|
if (this._items.length == 0)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (!Main.pushModal(this.actor)) {
|
if (!Main.pushModal(this.actor)) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user