From 96d098daba2c4ca4614fefe6dbd4de399b9e2813 Mon Sep 17 00:00:00 2001 From: Simon Schneegans Date: Sun, 29 Jan 2023 14:06:43 +0100 Subject: [PATCH] :wrench: Connect fire buttons only once --- src/effects/Fire.js | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/src/effects/Fire.js b/src/effects/Fire.js index 96e543c..151fc36 100644 --- a/src/effects/Fire.js +++ b/src/effects/Fire.js @@ -117,17 +117,22 @@ var Fire = class { dialog.bindColorButton('fire-color-4'); dialog.bindColorButton('fire-color-5'); - // The fire-gradient-reset button needs to be bound explicitly. - dialog.getBuilder().get_object('reset-fire-colors').connect('clicked', () => { - dialog.getProfileSettings().reset('fire-color-1'); - dialog.getProfileSettings().reset('fire-color-2'); - dialog.getProfileSettings().reset('fire-color-3'); - dialog.getProfileSettings().reset('fire-color-4'); - dialog.getProfileSettings().reset('fire-color-5'); - }); + // Connect the buttons only once. The bindPreferences can be called multiple times... + if (!this._isConnected) { + this._isConnected = true; - // Initialize the fire-preset dropdown. - this._createFirePresets(dialog); + // The fire-gradient-reset button needs to be bound explicitly. + dialog.getBuilder().get_object('reset-fire-colors').connect('clicked', () => { + dialog.getProfileSettings().reset('fire-color-1'); + dialog.getProfileSettings().reset('fire-color-2'); + dialog.getProfileSettings().reset('fire-color-3'); + dialog.getProfileSettings().reset('fire-color-4'); + dialog.getProfileSettings().reset('fire-color-5'); + }); + + // Initialize the fire-preset dropdown. + this._createFirePresets(dialog); + } } // ---------------------------------------------------------------- API for extension.js