From 15e7f470cbe2f71f696c2ab8d10169da598fe5b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Hedin=20Br=C3=B8nner?= Date: Wed, 6 Dec 2017 12:30:10 +0100 Subject: [PATCH] Reset monitors-changed signal on reload --- tiling.js | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/tiling.js b/tiling.js index 2be7c0c..607d676 100644 --- a/tiling.js +++ b/tiling.js @@ -34,11 +34,6 @@ const StackOverlay = Extension.imports.stackoverlay; var focus_signal = Symbol(); var primary = Main.layoutManager.primaryMonitor; -//: [object Monitor] -// Reset primary when monitors change -global.screen.connect("monitors-changed", function(screen) { - primary = Main.layoutManager.primaryMonitor; -}) var panelBox = Main.layoutManager.panelBox; @@ -1017,11 +1012,8 @@ function cycleWindowWidth(metaWindow) { delete metaWindow.unmaximized_rect; } -let nWorkspacesSignal; -let workspaceRemovedSignal; -let windowCreatedSignal; -var panelBoxShowId; -var panelBoxHideId; +var nWorkspacesSignal, workspaceRemovedSignal, windowCreatedSignal; +var panelBoxShowId, panelBoxHideId, monitorsChangedId; function enable () { nWorkspacesSignal = global.screen.connect('notify::n-workspaces', @@ -1035,6 +1027,13 @@ function enable () { global.display.connect('window-created', utils.dynamic_function_ref('window_created', spaces)); + // Reset primary when monitors change + monitorsChangedId = global.screen.connect( + "monitors-changed", + function(screen) { + primary = Main.layoutManager.primaryMonitor; + }); + panelBoxShowId = panelBox.connect('show', showPanelBox); panelBoxHideId = panelBox.connect('hide', hidePanelBox); } @@ -1059,6 +1058,8 @@ function disable () { spaces.removeSpace(spaces._spaces[workspace]); } + global.screen.disconnect(monitorsChangedId); + panelBox.scale_y = 1; panelBox.disconnect(panelBoxShowId); panelBox.disconnect(panelBoxHideId);