diff --git a/src/modules/GtkThemer.js b/src/modules/GtkThemer.js index 0490895..d0e1a09 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) + this._setVariant(e.timer.time); + } + _onTimeChanged(_timer, newTime) { this._setVariant(newTime); } @@ -149,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/SettingsManager.js b/src/modules/SettingsManager.js index 85c5abc..674d2a5 100644 --- a/src/modules/SettingsManager.js +++ b/src/modules/SettingsManager.js @@ -50,10 +50,12 @@ 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)); 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)); @@ -86,10 +88,12 @@ 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); 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); @@ -478,6 +482,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 */ @@ -501,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 */ diff --git a/src/modules/ShellThemer.js b/src/modules/ShellThemer.js index 938990e..5d8d992 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) + this._setVariant(e.timer.time); + } + _onTimeChanged(_timer, newTime) { this._setVariant(newTime); } @@ -149,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; }