Move initWorkspaces into Spaces.constructor

This commit is contained in:
Tor Hedin Brønner
2018-04-22 15:01:57 +02:00
parent 1839d3713d
commit dc2e6d3de7
+46 -50
View File
@@ -257,9 +257,54 @@ class Spaces extends Map {
'window-created',
utils.dynamic_function_ref('window_created', this))
];
// Clone and hook up existing windows
global.display.get_tab_list(Meta.TabList.NORMAL_ALL, null)
.forEach(metaWindow => {
let actor = metaWindow.get_compositor_private();
let clone = new Clutter.Clone({source: actor});
metaWindow.clone = clone;
metaWindow[signals] = [
metaWindow.connect("focus", focus_wrapper),
metaWindow.connect('notify::minimized', minimizeWrapper),
metaWindow.connect('size-changed', sizeHandler)
];
actor[signals] = [
actor.connect('show', showWrapper)
];
});
// Hook up existing workspaces
for (let i=0; i < global.screen.n_workspaces; i++) {
let workspace = global.screen.get_workspace_by_index(i)
this.addSpace(workspace);
debug("workspace", workspace)
}
}
destroy() {
global.display.get_tab_list(Meta.TabList.NORMAL_ALL, null)
.forEach(metaWindow => {
let actor = metaWindow.get_compositor_private();
actor.set_scale(1, 1);
actor.set_pivot_point(0, 0);
if (actor[signals]) {
actor[signals].forEach(id => actor.disconnect(id));
}
if (metaWindow.clone)
metaWindow.clone.destroy();
if (metaWindow[signals]) {
metaWindow[signals].forEach(id => metaWindow.disconnect(id));
delete metaWindow[signals];
}
actor.show();
});
this.screenSignals.forEach(id => global.screen.disconnect(id));
this.displaySignals.forEach(id => global.display.disconnect(id));
@@ -367,7 +412,6 @@ function init() {
function enable() {
spaces = new Spaces();
color = 3;
global.screen[signals].push(
@@ -389,34 +433,7 @@ function enable() {
let isDuringGnomeShellStartup = Main.actionMode === Shell.ActionMode.NONE;
function initWorkspaces() {
global.display.get_tab_list(Meta.TabList.NORMAL_ALL, null)
.forEach(metaWindow => {
let actor = metaWindow.get_compositor_private();
let clone = new Clutter.Clone({source: actor});
metaWindow.clone = clone;
});
// Hook up existing workspaces
for (let i=0; i < global.screen.n_workspaces; i++) {
let workspace = global.screen.get_workspace_by_index(i)
spaces.addSpace(workspace);
debug("workspace", workspace)
}
global.display.get_tab_list(Meta.TabList.NORMAL_ALL, null)
.forEach(metaWindow => {
metaWindow[signals] = [
metaWindow.connect("focus", focus_wrapper),
metaWindow.connect('notify::minimized', minimizeWrapper),
metaWindow.connect('size-changed', sizeHandler)
];
let actor = metaWindow.get_compositor_private();
actor[signals] = [
actor.connect('show', showWrapper)
];
});
spaces = new Spaces();
Navigator.switchWorkspace(global.screen.get_active_workspace());
}
@@ -434,27 +451,6 @@ function enable() {
}
function disable () {
global.display.get_tab_list(Meta.TabList.NORMAL_ALL, null)
.forEach(metaWindow => {
let actor = metaWindow.get_compositor_private();
actor.set_scale(1, 1);
actor.set_pivot_point(0, 0);
if (actor[signals]) {
actor[signals].forEach(id => actor.disconnect(id));
}
if (metaWindow.clone)
metaWindow.clone.destroy();
if (metaWindow[signals]) {
metaWindow[signals].forEach(id => metaWindow.disconnect(id));
delete metaWindow[signals];
}
actor.show();
});
spaces.destroy();
// Disable workspace related signals