diff --git a/extension.js b/extension.js index 4f7134c..4d5d078 100644 --- a/extension.js +++ b/extension.js @@ -28,6 +28,7 @@ function enable() { // Hook up existing workspaces for (let i=0; i < global.screen.n_workspaces; i++) { let workspace = global.screen.get_workspace_by_index(i) + Tiling.spaces[i] = Space(workspace); debug("workspace", workspace) workspace.connect("window-added", dynamic_function_ref("add_handler")) workspace.connect("window-removed", dynamic_function_ref("remove_handler")); diff --git a/tiling.js b/tiling.js index dec1067..d95a80a 100644 --- a/tiling.js +++ b/tiling.js @@ -29,14 +29,24 @@ panelBox.connect('show', () => { }); }); + +Space = (workspace) => { + // Simplest way to get a straight array interface + let space = []; + space.workspace = workspace; + space.selectedWindow = null; + space.moving = false; + space.leftStack = 0; + space.rightStack = 0; + return space; +} + panelBox.connect('hide', () => { panelBox.y = - panelBox.height; }); -spaces = [] -for (let i=0; i < global.screen.n_workspaces; i++) { - spaces[i] = [] -} +const spaces = [] +window.spaces = spaces; debug_all = true; // Consider the default value in `debug_filter` to be true debug_filter = { "#preview": false };