Allow disabling GTK and shell variants switching

This commit is contained in:
Romain
2020-06-15 14:13:37 +00:00
parent 5a0c0d7f36
commit c17f5898d6
8 changed files with 384 additions and 180 deletions
+33 -6
View File
@@ -46,10 +46,14 @@ var GtkThemer = class {
enable() {
log_debug('Enabling GTK Themer...');
try {
this._update_variants();
this._set_variant(e.timer.time);
this._connect_settings();
this._connect_timer();
this._watch_status();
this._save_original_theme();
if ( e.settingsManager.gtk_variants_enabled ) {
this._update_variants();
this._set_variant(e.timer.time);
this._connect_settings();
this._connect_timer();
}
}
catch(e) {
log_error(e);
@@ -61,11 +65,25 @@ var GtkThemer = class {
log_debug('Disabling GTK Themer...');
this._disconnect_timer();
this._disconnect_settings();
this._reset_theme();
this._reset_original_theme();
this._unwatch_status();
log_debug('GTK Themer disabled.');
}
_watch_status() {
log_debug('Watching GTK variants status...');
this._gtk_variants_status_changed_connect = e.settingsManager.connect('gtk-variants-status-changed', this._on_gtk_variants_status_changed.bind(this));
}
_unwatch_status() {
if ( this._gtk_variants_status_changed_connect ) {
e.settingsManager.disconnect(this._gtk_variants_status_changed_connect);
this._gtk_variants_status_changed_connect = null;
}
log_debug('Stopped watching GTK variants status.');
}
_connect_settings() {
log_debug('Connecting GTK Themer to settings...');
this._gtk_variant_changed_connect = e.settingsManager.connect('gtk-variant-changed', this._on_gtk_variant_changed.bind(this));
@@ -98,6 +116,11 @@ var GtkThemer = class {
}
_on_gtk_variants_status_changed(settings, enabled) {
this.disable();
this.enable();
}
_on_gtk_variant_changed(settings, changed_variant_time) {
if ( changed_variant_time === e.timer.time ) {
this._set_variant(changed_variant_time);
@@ -159,7 +182,11 @@ var GtkThemer = class {
log_debug(`New GTK variants. { day: '${variants.get('day')}'; night: '${variants.get('night')}' }`);
}
_reset_theme() {
_save_original_theme() {
e.settingsManager.gtk_variant_original = e.settingsManager.gtk_theme;
}
_reset_original_theme() {
// We don't reset the theme when locking the session to prevent
// flicker on unlocking
if ( !main.screenShield.locked ) {
+25
View File
@@ -51,9 +51,11 @@ var SettingsManager = class {
enable() {
log_debug('Connecting settings signals...');
this._gtk_variants_status_changed_connect = this._extensionsSettings.connect('changed::gtk-variants-enabled', this._on_gtk_variants_status_changed.bind(this));
this._gtk_variant_day_changed_connect = this._extensionsSettings.connect('changed::gtk-variant-day', this._on_gtk_variant_day_changed.bind(this));
this._gtk_variant_night_changed_connect = this._extensionsSettings.connect('changed::gtk-variant-night', this._on_gtk_variant_night_changed.bind(this));
this._gtk_variant_original_changed_connect = this._extensionsSettings.connect('changed::gtk-variant-original', this._on_gtk_variant_original_changed.bind(this));
this._shell_variants_status_changed_connect = this._extensionsSettings.connect('changed::shell-variants-enabled', this._on_shell_variants_status_changed.bind(this));
this._shell_variant_day_changed_connect = this._extensionsSettings.connect('changed::shell-variant-day', this._on_shell_variant_day_changed.bind(this));
this._shell_variant_night_changed_connect = this._extensionsSettings.connect('changed::shell-variant-night', this._on_shell_variant_night_changed.bind(this));
this._shell_variant_original_changed_connect = this._extensionsSettings.connect('changed::shell-variant-original', this._on_shell_variant_original_changed.bind(this));
@@ -85,9 +87,11 @@ var SettingsManager = class {
disable() {
log_debug('Disconnecting settings signals...');
this._extensionsSettings.disconnect(this._gtk_variants_status_changed_connect);
this._extensionsSettings.disconnect(this._gtk_variant_day_changed_connect);
this._extensionsSettings.disconnect(this._gtk_variant_night_changed_connect);
this._extensionsSettings.disconnect(this._gtk_variant_original_changed_connect);
this._extensionsSettings.disconnect(this._shell_variants_status_changed_connect);
this._extensionsSettings.disconnect(this._shell_variant_day_changed_connect);
this._extensionsSettings.disconnect(this._shell_variant_night_changed_connect);
this._extensionsSettings.disconnect(this._shell_variant_original_changed_connect);
@@ -123,6 +127,10 @@ var SettingsManager = class {
/* GTK variants settings */
get gtk_variants_enabled() {
return this._extensionsSettings.get_boolean('gtk-variants-enabled');
}
get gtk_variant_day() {
return this._extensionsSettings.get_string('gtk-variant-day');
}
@@ -163,6 +171,10 @@ var SettingsManager = class {
/* Shell variants settings */
get shell_variants_enabled() {
return this._extensionsSettings.get_boolean('shell-variants-enabled');
}
get shell_variant_day() {
return this._extensionsSettings.get_string('shell-variant-day');
}
@@ -387,6 +399,9 @@ var SettingsManager = class {
if ( this._userthemesSettings ) {
return this._userthemesSettings.get_string('name');
}
else {
return '';
}
}
set shell_theme(value) {
@@ -448,6 +463,11 @@ var SettingsManager = class {
/* GTK variants */
_on_gtk_variants_status_changed(settings, changed_key) {
log_debug('GTK variants have been ' + (this.gtk_variants_enabled ? 'ena' : 'disa') + 'bled.');
this.emit('gtk-variants-status-changed', this.gtk_variants_enabled);
}
_on_gtk_variant_day_changed(settings, changed_key) {
log_debug(`GTK day variant has changed to '${this.gtk_variant_day}'.`);
this.emit('gtk-variant-changed', 'day');
@@ -466,6 +486,11 @@ var SettingsManager = class {
/* Shell variants */
_on_shell_variants_status_changed(settings, changed_key) {
log_debug('Shell variants have been ' + (this.shell_variants_enabled ? 'ena' : 'disa') + 'bled.');
this.emit('shell-variants-status-changed', this.shell_variants_enabled);
}
_on_shell_variant_day_changed(settings, changed_key) {
log_debug(`Shell day variant has changed to '${this.shell_variant_day}'.`);
this.emit('shell-variant-changed', 'day');
+33 -6
View File
@@ -45,10 +45,14 @@ var ShellThemer = class {
enable() {
log_debug('Enabling Shell Themer...');
try {
this._update_variants();
this._set_variant(e.timer.time);
this._connect_settings();
this._connect_timer();
this._watch_status();
this._save_original_theme();
if ( e.settingsManager.shell_variants_enabled ) {
this._update_variants();
this._set_variant(e.timer.time);
this._connect_settings();
this._connect_timer();
}
}
catch(e) {
log_error(e);
@@ -60,11 +64,25 @@ var ShellThemer = class {
log_debug('Disabling Shell Themer...');
this._disconnect_timer();
this._disconnect_settings();
this._reset_theme();
this._reset_original_theme();
this._unwatch_status();
log_debug('Shell Themer disabled.');
}
_watch_status() {
log_debug('Watching shell variants status...');
this._shell_variants_status_changed_connect = e.settingsManager.connect('shell-variants-status-changed', this._on_shell_variants_status_changed.bind(this));
}
_unwatch_status() {
if ( this._shell_variants_status_changed_connect ) {
e.settingsManager.disconnect(this._shell_variants_status_changed_connect);
this._shell_variants_status_changed_connect = null;
}
log_debug('Stopped watching shell variants status.');
}
_connect_settings() {
log_debug('Connecting Shell Themer to settings...');
this._shell_variant_changed_connect = e.settingsManager.connect('shell-variant-changed', this._on_shell_variant_changed.bind(this));
@@ -97,6 +115,11 @@ var ShellThemer = class {
}
_on_shell_variants_status_changed(settings, enabled) {
this.disable();
this.enable();
}
_on_shell_variant_changed(settings, changed_variant_time) {
if ( changed_variant_time === e.timer.time ) {
this._set_variant(e.timer.time);
@@ -166,7 +189,11 @@ var ShellThemer = class {
log_debug(`New Shell variants. { day: '${variants.get('day')}'; night: '${variants.get('night')}' }`);
}
_reset_theme() {
_save_original_theme() {
e.settingsManager.shell_variant_original = e.settingsManager.shell_theme;
}
_reset_original_theme() {
// We don't reset the theme when locking the session to prevent
// flicker on unlocking
if ( !main.screenShield.locked ) {