Theme switcher: Disconnect from extension manager
This commit is contained in:
@@ -74,6 +74,8 @@ var SwitcherTheme = class extends Switcher {
|
|||||||
}
|
}
|
||||||
|
|
||||||
set systemSettings(settings) {
|
set systemSettings(settings) {
|
||||||
|
if (settings === this.#systemSettings)
|
||||||
|
return;
|
||||||
this.#systemSettings = settings;
|
this.#systemSettings = settings;
|
||||||
this.disable();
|
this.disable();
|
||||||
this.enable();
|
this.enable();
|
||||||
@@ -183,6 +185,7 @@ var SwitcherThemeIcon = class extends SwitcherTheme {
|
|||||||
|
|
||||||
var SwitcherThemeShell = class extends SwitcherTheme {
|
var SwitcherThemeShell = class extends SwitcherTheme {
|
||||||
#settings;
|
#settings;
|
||||||
|
#extensionManagerConnection = null;
|
||||||
|
|
||||||
constructor({ timer }) {
|
constructor({ timer }) {
|
||||||
const settings = extensionUtils.getSettings(`${Me.metadata['settings-schema']}.shell-variants`);
|
const settings = extensionUtils.getSettings(`${Me.metadata['settings-schema']}.shell-variants`);
|
||||||
@@ -194,10 +197,22 @@ var SwitcherThemeShell = class extends SwitcherTheme {
|
|||||||
themeKey: 'name',
|
themeKey: 'name',
|
||||||
noSettingsUpdateSystemThemeCallback: time => this.#noSettingsUpdateSystemThemeCallback(time),
|
noSettingsUpdateSystemThemeCallback: time => this.#noSettingsUpdateSystemThemeCallback(time),
|
||||||
});
|
});
|
||||||
extensionManager.connect('extension-state-changed', this.#onExtensionStateChanged.bind(this));
|
|
||||||
this.#settings = settings;
|
this.#settings = settings;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enable() {
|
||||||
|
super.enable();
|
||||||
|
this.#extensionManagerConnection = extensionManager.connect('extension-state-changed', this.#onExtensionStateChanged.bind(this));
|
||||||
|
}
|
||||||
|
|
||||||
|
disable() {
|
||||||
|
super.disable();
|
||||||
|
if (this.#extensionManagerConnection) {
|
||||||
|
extensionManager.disconnect(this.#extensionManagerConnection);
|
||||||
|
this.#extensionManagerConnection = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#noSettingsUpdateSystemThemeCallback(time) {
|
#noSettingsUpdateSystemThemeCallback(time) {
|
||||||
const shellTheme = this.#settings.get_string(time);
|
const shellTheme = this.#settings.get_string(time);
|
||||||
const stylesheet = utils.getShellThemeStylesheet(shellTheme);
|
const stylesheet = utils.getShellThemeStylesheet(shellTheme);
|
||||||
|
|||||||
Reference in New Issue
Block a user