extensionSystem: Only add to extensionOrder array if enabling worked
Only push uuids of newly enabled extensions to the `_extensionOrder` array if enabling them was successful. Otherwise, since `_callExtensionDisable()` doesn't remove uuids that weren't successfully enabled from the array, those extensions get added to the array multiple times when they're disabled and enabled. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/96
This commit is contained in:
parent
2a9e065cfb
commit
9698ff491a
@ -111,8 +111,6 @@ var ExtensionManager = class {
|
|||||||
if (extension.state != ExtensionState.DISABLED)
|
if (extension.state != ExtensionState.DISABLED)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
this._extensionOrder.push(uuid);
|
|
||||||
|
|
||||||
let stylesheetNames = [`${global.session_mode}.css`, 'stylesheet.css'];
|
let stylesheetNames = [`${global.session_mode}.css`, 'stylesheet.css'];
|
||||||
let theme = St.ThemeContext.get_for_stage(global.stage).get_theme();
|
let theme = St.ThemeContext.get_for_stage(global.stage).get_theme();
|
||||||
for (let i = 0; i < stylesheetNames.length; i++) {
|
for (let i = 0; i < stylesheetNames.length; i++) {
|
||||||
@ -132,6 +130,7 @@ var ExtensionManager = class {
|
|||||||
try {
|
try {
|
||||||
extension.stateObj.enable();
|
extension.stateObj.enable();
|
||||||
extension.state = ExtensionState.ENABLED;
|
extension.state = ExtensionState.ENABLED;
|
||||||
|
this._extensionOrder.push(uuid);
|
||||||
this.emit('extension-state-changed', extension);
|
this.emit('extension-state-changed', extension);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
if (extension.stylesheet) {
|
if (extension.stylesheet) {
|
||||||
|
Loading…
Reference in New Issue
Block a user