From 646a8b7bba4f8d305eb00d06c0331e9be928709e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Hedin=20Br=C3=B8nner?= Date: Thu, 21 Sep 2017 15:18:43 +0200 Subject: [PATCH] Create simple `Space` abstraction Also move full spaces init to `enable`. --- extension.js | 1 + tiling.js | 18 ++++++++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) 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 };