Merge branch 'fix/flicker-on-unlock' into 'master'

Fix flicker on unlock (Fix #5)

Closes #5

See merge request rmnvgr/nightthemeswitcher-gnome-shell-extension!11
This commit is contained in:
Romain
2020-03-23 15:04:39 +00:00
+12 -2
View File
@@ -18,6 +18,7 @@ this program. If not, see <http s ://www.gnu.org/licenses/>.
const { extensionUtils } = imports.misc;
const { Gio } = imports.gi;
const { main } = imports.ui;
const Me = extensionUtils.getCurrentExtension();
const config = Me.imports.config;
@@ -26,6 +27,8 @@ const { log_debug } = Me.imports.utils;
const { Variants } = Me.imports.modules.Variants;
const State = new Map();
/*
The Themer communicates with the system to get the current theme or set a new
@@ -52,7 +55,11 @@ var Themer = class {
disable() {
log_debug('Disabling Themer...');
this._stop_listening_to_theme_changes();
this.reset_theme();
// GNOME Shell disables extensions when locking the screen. We'll only reset the theme if the user disables the extension.
State.set('last_disabled_on_screen_lock', main.screenShield.locked);
if ( !State.get('last_disabled_on_screen_lock') ) {
this.reset_theme();
}
log_debug('Themer disabled.');
}
@@ -84,7 +91,7 @@ var Themer = class {
}
reset_theme() {
this.set_variant('original');
this.current = State.get('original_theme');
log_debug('Theme has been reset to the user\'s original variant.')
}
@@ -100,6 +107,9 @@ var Themer = class {
_update_variants() {
if ( this.current ) {
this.variants = Variants.guess_from(this.current);
if ( !State.get('last_disabled_on_screen_lock') ) {
State.set('original_theme', this.variants.get('original'));
}
log_debug('Variants updated: ' + this.variants);
}
}