diff --git a/js/ui/status/backlight.js b/js/ui/status/backlight.js index f35791848..ca901d547 100644 --- a/js/ui/status/backlight.js +++ b/js/ui/status/backlight.js @@ -177,10 +177,10 @@ class KeyboardBrightnessToggle extends QuickMenuToggle { this._discreteItem, 'value', GObject.BindingFlags.SYNC_CREATE); - this._sliderItem.connect('notify::value', + this._sliderItemChangedId = this._sliderItem.connect('notify::value', () => (this._proxy.Brightness = this._sliderItem.value)); - this._discreteItem.connect('notify::value', + this._discreteItemChangedId = this._discreteItem.connect('notify::value', () => (this._proxy.Brightness = this._discreteItem.value)); } @@ -194,6 +194,9 @@ class KeyboardBrightnessToggle extends QuickMenuToggle { this.checked = brightness > 0; const useSlider = this._proxy.Steps >= 4; + this._sliderItem.block_signal_handler(this._sliderItemChangedId); + this._discreteItem.block_signal_handler(this._discreteItemChangedId); + this._sliderItem.set({ visible: useSlider, value: brightness, @@ -201,6 +204,9 @@ class KeyboardBrightnessToggle extends QuickMenuToggle { if (!useSlider) this._discreteItem.nLevels = this._proxy.Steps; + + this._sliderItem.unblock_signal_handler(this._sliderItemChangedId); + this._discreteItem.unblock_signal_handler(this._discreteItemChangedId); } });