extensionSystem: Implement new live enable/disable system
The rough sketches of the system are outlined here: http://mail.gnome.org/archives/gnome-shell-list/2011-June/msg00283.html Additionally, enable/disable extensions when the 'enabled-extensions' setting changes. Two new DBus methods, "EnableExtension" and "DisableExtension" allow users to manipulate this setting quite easily. https://bugzilla.gnome.org/show_bug.cgi?id=654770
This commit is contained in:
@ -35,6 +35,14 @@ const GnomeShellIface = {
|
||||
{ name: 'Screenshot',
|
||||
inSignature: 's',
|
||||
outSignature: 'b'
|
||||
},
|
||||
{ name: 'EnableExtension',
|
||||
inSignature: 's',
|
||||
outSignature: ''
|
||||
},
|
||||
{ name: 'DisableExtension',
|
||||
inSignature: 's',
|
||||
outSignature: ''
|
||||
}
|
||||
],
|
||||
signals: [],
|
||||
@ -144,6 +152,20 @@ GnomeShell.prototype = {
|
||||
return ExtensionSystem.errors[uuid] || [];
|
||||
},
|
||||
|
||||
EnableExtension: function(uuid) {
|
||||
let enabledExtensions = global.settings.get_strv(ExtensionSystem.ENABLED_EXTENSIONS_KEY);
|
||||
if (enabledExtensions.indexOf(uuid) == -1)
|
||||
enabledExtensions.push(uuid);
|
||||
global.settings.set_strv(ExtensionSystem.ENABLED_EXTENSIONS_KEY, enabledExtensions);
|
||||
},
|
||||
|
||||
DisableExtension: function(uuid) {
|
||||
let enabledExtensions = global.settings.get_strv(ExtensionSystem.ENABLED_EXTENSIONS_KEY);
|
||||
while (enabledExtensions.indexOf(uuid) != -1)
|
||||
enabledExtensions.splice(enabledExtensions.indexOf(uuid), 1);
|
||||
global.settings.set_strv(ExtensionSystem.ENABLED_EXTENSIONS_KEY, enabledExtensions);
|
||||
},
|
||||
|
||||
get OverviewActive() {
|
||||
return Main.overview.visible;
|
||||
},
|
||||
|
Reference in New Issue
Block a user