From 0054fd050a2d9f95fd18f4370e6e20df886e4c70 Mon Sep 17 00:00:00 2001 From: Zoe Roux Date: Wed, 24 May 2023 01:23:05 +0900 Subject: [PATCH] Fix settings signal issue --- sources/border.js | 4 ++-- sources/indicator.js | 9 +++++---- sources/renderer.js | 6 ++++-- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/sources/border.js b/sources/border.js index 1c205ec..9ef1bb4 100644 --- a/sources/border.js +++ b/sources/border.js @@ -38,7 +38,7 @@ var BorderManager = GObject.registerClass( }); if (global.window_group) global.window_group.add_child(this._border); - this._settings.connect("changed", () => { + this._settingsSignal = this._settings.connect("changed", () => { this.settings = { show: this._settings.get_boolean("focus-border"), color: this._settings.get_string("focus-border-color"), @@ -50,7 +50,7 @@ var BorderManager = GObject.registerClass( disable() { log("Removing the border"); - this._settings.disconnect("changed"); + this._settings.disconnect(this._settingsSignal); this._border.destroy(); this._border = null; } diff --git a/sources/indicator.js b/sources/indicator.js index b751ab5..2565e9a 100644 --- a/sources/indicator.js +++ b/sources/indicator.js @@ -116,7 +116,9 @@ var Indicator = GObject.registerClass( this._destroyed = false; this.update(); - this._settings.connect("changed", () => this.update()); + this._settingsSignal = this._settings.connect("changed", () => + this.update() + ); } disable() { @@ -132,7 +134,7 @@ var Indicator = GObject.registerClass( this._layoutIndicator = null; this._icon = null; - this._settings.disconnect("changed"); + this._settings.disconnect(this._settingsSignal); } update() { @@ -184,8 +186,7 @@ var Indicator = GObject.registerClass( this._windowCount.set_text(windowCount.toString()); if (state.layout === "monocle" || state.layout === "deck") this._windowCount.show(); - else - this._windowCount.hide(); + else this._windowCount.hide(); for (const [key, value] of Object.entries(this._layoutPanelItems)) { value.setOrnament( key === state.layout diff --git a/sources/renderer.js b/sources/renderer.js index d7af5b8..42021d8 100644 --- a/sources/renderer.js +++ b/sources/renderer.js @@ -43,8 +43,10 @@ var Renderer = GObject.registerClass( this.warpEnabled = this._settings.get_boolean("warp-cursor"); this._state.singleTagset = this._settings.get_boolean("single-tagset"); + log("Enabling with state:", JSON.stringify(this._state.windows)); for (const window of global.display.list_all_windows()) this.trackWindow(window); + log("Enabling with state after tracking:", JSON.stringify(this._state.windows)); const workspace = global.display .get_workspace_manager() @@ -139,7 +141,7 @@ var Renderer = GObject.registerClass( } // We do not remove the state's windows array, we want to keep tags when the user suspend the systme. - this._settings.disconnect("changed"); + this._settings.disconnect(this._settingsSignal); } _bindSignals() { @@ -219,7 +221,7 @@ var Renderer = GObject.registerClass( }), ]; - this._settings.connect("changed", (_, key) => { + this._settingsSignal = this._settings.connect("changed", (_, key) => { log("Proprety changed", key); switch (key) { case "gap-size":