diff --git a/data/dbus-interfaces/org.gnome.Shell.Extensions.xml b/data/dbus-interfaces/org.gnome.Shell.Extensions.xml index 309a9f207..61c898e3d 100644 --- a/data/dbus-interfaces/org.gnome.Shell.Extensions.xml +++ b/data/dbus-interfaces/org.gnome.Shell.Extensions.xml @@ -213,6 +213,15 @@ --> + + + + + + diff --git a/js/extensionPrefs/main.js b/js/extensionPrefs/main.js index d82dde426..be543a4ba 100644 --- a/js/extensionPrefs/main.js +++ b/js/extensionPrefs/main.js @@ -246,7 +246,7 @@ var Application = GObject.registerClass({ this._mainStack.add_named(new EmptyPlaceholder(), 'placeholder'); this._shellProxy = new GnomeShellProxy(Gio.DBus.session, 'org.gnome.Shell', '/org/gnome/Shell'); - this._shellProxy.connectSignal('ExtensionStatusChanged', (proxy, senderName, [uuid, state, error]) => { + this._shellProxy.connectSignal('ExtensionStateChanged', (proxy, senderName, [uuid, state]) => { if (ExtensionUtils.extensions[uuid] !== undefined) this._scanExtensions(); }); diff --git a/js/ui/extensionSystem.js b/js/ui/extensionSystem.js index 0b22783cc..84a79170b 100644 --- a/js/ui/extensionSystem.js +++ b/js/ui/extensionSystem.js @@ -159,15 +159,14 @@ var ExtensionManager = class { let message = `${error}`; + extension.error = message; extension.state = ExtensionState.ERROR; if (!extension.errors) extension.errors = []; extension.errors.push(message); log('Extension "%s" had error: %s'.format(uuid, message)); - this.emit('extension-state-changed', { uuid: uuid, - error: message, - state: extension.state }); + this.emit('extension-state-changed', extension); } loadExtension(extension) { diff --git a/js/ui/shellDBus.js b/js/ui/shellDBus.js index 64e80b42f..424aef567 100644 --- a/js/ui/shellDBus.js +++ b/js/ui/shellDBus.js @@ -320,6 +320,10 @@ var GnomeShellExtensions = class { } _extensionStateChanged(_, newState) { + let state = ExtensionUtils.serializeExtension(newState); + this._dbusImpl.emit_signal('ExtensionStateChanged', + new GLib.Variant('(sa{sv})', [newState.uuid, state])); + this._dbusImpl.emit_signal('ExtensionStatusChanged', GLib.Variant.new('(sis)', [newState.uuid, newState.state, newState.error])); }