From 271bfea38417f3cf36a10950d55a6744791ddb21 Mon Sep 17 00:00:00 2001 From: Romain Vigier Date: Wed, 5 Aug 2020 11:45:59 +0200 Subject: [PATCH 1/5] Add manual GTK variants changed signal --- src/modules/SettingsManager.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/modules/SettingsManager.js b/src/modules/SettingsManager.js index 85c5abc..6502777 100644 --- a/src/modules/SettingsManager.js +++ b/src/modules/SettingsManager.js @@ -50,6 +50,7 @@ var SettingsManager = class { this._gtkVariantDayChangedConnect = this._extensionsSettings.connect('changed::gtk-variant-day', this._onGtkVariantDayChanged.bind(this)); this._gtkVariantNightChangedConnect = this._extensionsSettings.connect('changed::gtk-variant-night', this._onGtkVariantNightChanged.bind(this)); this._gtkVariantOriginalChangedConnect = this._extensionsSettings.connect('changed::gtk-variant-original', this._onGtkVariantOriginalChanged.bind(this)); + this._manualGtkVariantsChangedConnect = this._extensionsSettings.connect('changed::manual-gtk-variants', this._onManualGtkVariantsChanged.bind(this)); this._shellVariantsStatusChangedConnect = this._extensionsSettings.connect('changed::shell-variants-enabled', this._onShellVariantsStatusChanged.bind(this)); this._shellVariantDayChangedConnect = this._extensionsSettings.connect('changed::shell-variant-day', this._onShellVariantDayChanged.bind(this)); this._shellVariantNightChangedConnect = this._extensionsSettings.connect('changed::shell-variant-night', this._onShellVariantNightChanged.bind(this)); @@ -86,6 +87,7 @@ var SettingsManager = class { this._extensionsSettings.disconnect(this._gtkVariantDayChangedConnect); this._extensionsSettings.disconnect(this._gtkVariantNightChangedConnect); this._extensionsSettings.disconnect(this._gtkVariantOriginalChangedConnect); + this._extensionsSettings.disconnect(this._manualGtkVariantsChangedConnect); this._extensionsSettings.disconnect(this._shellVariantsStatusChangedConnect); this._extensionsSettings.disconnect(this._shellVariantDayChangedConnect); this._extensionsSettings.disconnect(this._shellVariantNightChangedConnect); @@ -478,6 +480,11 @@ var SettingsManager = class { this.emit('gtk-variant-changed', 'original'); } + _onManualGtkVariantsChanged(_settings, _changedKey) { + logDebug(`Manual GTK variants have been ${this.manualGtkVariants ? 'ena' : 'disa'}bled.`); + this.emit('manual-gtk-variants-changed', this.manualGtkVariants); + } + /* Shell variants */ From 9c0894d4a039ff01861dbe38c70f46fea28cfb1b Mon Sep 17 00:00:00 2001 From: Romain Vigier Date: Wed, 5 Aug 2020 12:08:14 +0200 Subject: [PATCH 2/5] Set current variant when manual GTK variants are enabled --- src/modules/GtkThemer.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/modules/GtkThemer.js b/src/modules/GtkThemer.js index 0490895..c0200b2 100644 --- a/src/modules/GtkThemer.js +++ b/src/modules/GtkThemer.js @@ -46,6 +46,7 @@ var GtkThemer = class { this._gtkVariantsStatusChangedConnect = null; this._gtkVariantChangedConnect = null; this._gtkThemeChangedConnect = null; + this._manualGtkVariantsChangedConnect = null; this._timeChangedConnect = null; } @@ -55,8 +56,8 @@ var GtkThemer = class { this._watchStatus(); this._saveOriginalTheme(); if (e.settingsManager.gtkVariantsEnabled) { - this._updateVariants(); this._connectSettings(); + this._updateVariants(); this._connectTimer(); } } catch (error) { @@ -92,6 +93,7 @@ var GtkThemer = class { logDebug('Connecting GTK Themer to settings...'); this._gtkVariantChangedConnect = e.settingsManager.connect('gtk-variant-changed', this._onGtkVariantChanged.bind(this)); this._gtkThemeChangedConnect = e.settingsManager.connect('gtk-theme-changed', this._onGtkThemeChanged.bind(this)); + this._manualGtkVariantsChangedConnect = e.settingsManager.connect('manual-gtk-variants-changed', this._onManualGtkVariantsChanged.bind(this)); } _disconnectSettings() { @@ -139,6 +141,13 @@ var GtkThemer = class { } } + _onManualGtkVariantsChanged(_settings, enabled) { + this.disable(); + this.enable(); + if (enabled && e.timer.time) + this._setVariant(e.timer.time); + } + _onTimeChanged(_timer, newTime) { this._setVariant(newTime); } From ad709d651afaa31d5265dd62c82236d2aebf5233 Mon Sep 17 00:00:00 2001 From: Romain Vigier Date: Wed, 5 Aug 2020 12:10:16 +0200 Subject: [PATCH 3/5] Add manual Shell variants changed signal --- src/modules/SettingsManager.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/modules/SettingsManager.js b/src/modules/SettingsManager.js index 6502777..674d2a5 100644 --- a/src/modules/SettingsManager.js +++ b/src/modules/SettingsManager.js @@ -55,6 +55,7 @@ var SettingsManager = class { this._shellVariantDayChangedConnect = this._extensionsSettings.connect('changed::shell-variant-day', this._onShellVariantDayChanged.bind(this)); this._shellVariantNightChangedConnect = this._extensionsSettings.connect('changed::shell-variant-night', this._onShellVariantNightChanged.bind(this)); this._shellVariantOriginalChangedConnect = this._extensionsSettings.connect('changed::shell-variant-original', this._onShellVariantOriginalChanged.bind(this)); + this._manualShellVariantsChangedConnect = this._extensionsSettings.connect('changed::manual-shell-variants', this._onManualShellVariantsChanged.bind(this)); this._iconVariantsStatusConnect = this._extensionsSettings.connect('changed::icon-variants-enabled', this._onIconVariantsStatusChanged.bind(this)); this._iconVariantDayChangedConnect = this._extensionsSettings.connect('changed::icon-variant-day', this._onIconVariantDayChanged.bind(this)); this._iconVariantNightChangedConnect = this._extensionsSettings.connect('changed::icon-variant-night', this._onIconVariantNightChanged.bind(this)); @@ -92,6 +93,7 @@ var SettingsManager = class { this._extensionsSettings.disconnect(this._shellVariantDayChangedConnect); this._extensionsSettings.disconnect(this._shellVariantNightChangedConnect); this._extensionsSettings.disconnect(this._shellVariantOriginalChangedConnect); + this._extensionsSettings.disconnect(this._manualShellVariantsChangedConnect); this._extensionsSettings.disconnect(this._iconVariantsStatusConnect); this._extensionsSettings.disconnect(this._iconVariantDayChangedConnect); this._extensionsSettings.disconnect(this._iconVariantNightChangedConnect); @@ -508,6 +510,11 @@ var SettingsManager = class { this.emit('shell-variant-changed', 'original'); } + _onManualShellVariantsChanged(_settings, _changedKey) { + logDebug(`Manual Shell variants have been ${this.manualShellVariants ? 'ena' : 'disa'}bled.`); + this.emit('manual-shell-variants-changed', this.manualShellVariants); + } + /* Cursor variants */ From 2af512482d0ebf678f304941abf8333e83719eaa Mon Sep 17 00:00:00 2001 From: Romain Vigier Date: Wed, 5 Aug 2020 12:11:43 +0200 Subject: [PATCH 4/5] Set current variant when manual Shell variants are enabled --- src/modules/ShellThemer.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/modules/ShellThemer.js b/src/modules/ShellThemer.js index 938990e..fd8b049 100644 --- a/src/modules/ShellThemer.js +++ b/src/modules/ShellThemer.js @@ -46,6 +46,7 @@ var ShellThemer = class { this._shellVariantsStatusChangedConnect = null; this._shellVariantChangedConnect = null; this._shellThemeChangedConnect = null; + this._manualShellVariantsChangedConnect = null; this._timeChangedConnect = null; } @@ -55,8 +56,8 @@ var ShellThemer = class { this._watchStatus(); this._saveOriginalTheme(); if (e.settingsManager.shellVariantsEnabled) { - this._updateVariants(); this._connectSettings(); + this._updateVariants(); this._connectTimer(); } } catch (error) { @@ -92,6 +93,7 @@ var ShellThemer = class { logDebug('Connecting Shell Themer to settings...'); this._shellVariantChangedConnect = e.settingsManager.connect('shell-variant-changed', this._onShellVariantChanged.bind(this)); this._shellThemeChangedConnect = e.settingsManager.connect('shell-theme-changed', this._onShellThemeChanged.bind(this)); + this._manualShellVariantsChangedConnect = e.settingsManager.connect('manual-shell-variants-changed', this._onManualShellVariantsChanged.bind(this)); } _disconnectSettings() { @@ -139,6 +141,13 @@ var ShellThemer = class { } } + _onManualShellVariantsChanged(_settings, enabled) { + this.disable(); + this.enable(); + if (enabled && e.timer.time) + this._setVariant(e.timer.time); + } + _onTimeChanged(_timer, newTime) { this._setVariant(newTime); } From 9e18f1f03855ed5578d1c0571098205184564efe Mon Sep 17 00:00:00 2001 From: Romain Vigier Date: Wed, 5 Aug 2020 12:23:04 +0200 Subject: [PATCH 5/5] Don't try to set variant if the current time is unavailable --- src/modules/GtkThemer.js | 4 +++- src/modules/ShellThemer.js | 4 +++- src/modules/Timer.js | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/modules/GtkThemer.js b/src/modules/GtkThemer.js index c0200b2..d0e1a09 100644 --- a/src/modules/GtkThemer.js +++ b/src/modules/GtkThemer.js @@ -144,7 +144,7 @@ var GtkThemer = class { _onManualGtkVariantsChanged(_settings, enabled) { this.disable(); this.enable(); - if (enabled && e.timer.time) + if (enabled) this._setVariant(e.timer.time); } @@ -158,6 +158,8 @@ var GtkThemer = class { } _setVariant(time) { + if (!time) + return; logDebug(`Setting the GTK ${time} variant...`); switch (time) { case 'day': diff --git a/src/modules/ShellThemer.js b/src/modules/ShellThemer.js index fd8b049..5d8d992 100644 --- a/src/modules/ShellThemer.js +++ b/src/modules/ShellThemer.js @@ -144,7 +144,7 @@ var ShellThemer = class { _onManualShellVariantsChanged(_settings, enabled) { this.disable(); this.enable(); - if (enabled && e.timer.time) + if (enabled) this._setVariant(e.timer.time); } @@ -158,6 +158,8 @@ var ShellThemer = class { } _setVariant(time) { + if (!time) + return; logDebug(`Setting the shell ${time} variant...`); let shellTheme; switch (time) { diff --git a/src/modules/Timer.js b/src/modules/Timer.js index b79bc61..220f9af 100644 --- a/src/modules/Timer.js +++ b/src/modules/Timer.js @@ -75,7 +75,7 @@ var Timer = class { get time() { - return this._source.time; + return this._source ? this._source.time : null; }