extensionSystem: Add method for opening extension prefs
Extension that want to expose their own preferences (for example as menu items) do that by passing their UUID to gnome-shell-extension-prefs. But since 3.36.1 the app is optional and no longer accepts arguments on the command line. To adjust, extensions now need to make a D-Bus call the extensions portal, just like the app and gnome-shell. We will add a convenience method for that purpose, so it makes sense to share the existing code. As it's extension-related, the extension manager looks like the right place ... https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1163
This commit is contained in:
parent
51a913730e
commit
45bc850715
@ -215,6 +215,24 @@ var ExtensionManager = class {
|
||||
return true;
|
||||
}
|
||||
|
||||
openExtensionPrefs(uuid, parentWindow, options) {
|
||||
const extension = this.lookup(uuid);
|
||||
if (!extension || !extension.hasPrefs)
|
||||
return false;
|
||||
|
||||
Gio.DBus.session.call(
|
||||
'org.gnome.Shell.Extensions',
|
||||
'/org/gnome/Shell/Extensions',
|
||||
'org.gnome.Shell.Extensions',
|
||||
'OpenExtensionPrefs',
|
||||
new GLib.Variant('(ssa{sv})', [uuid, parentWindow, options]),
|
||||
null,
|
||||
Gio.DBusCallFlags.NONE,
|
||||
-1,
|
||||
null);
|
||||
return true;
|
||||
}
|
||||
|
||||
notifyExtensionUpdate(uuid) {
|
||||
let extension = this.lookup(uuid);
|
||||
if (!extension)
|
||||
|
@ -316,16 +316,7 @@ var GnomeShellExtensions = class {
|
||||
}
|
||||
|
||||
OpenExtensionPrefs(uuid, parentWindow, options) {
|
||||
Gio.DBus.session.call(
|
||||
'org.gnome.Shell.Extensions',
|
||||
'/org/gnome/Shell/Extensions',
|
||||
'org.gnome.Shell.Extensions',
|
||||
'OpenExtensionPrefs',
|
||||
new GLib.Variant('(ssa{sv})', [uuid, parentWindow, options]),
|
||||
null,
|
||||
Gio.DBusCallFlags.NONE,
|
||||
-1,
|
||||
null);
|
||||
Main.extensionManager.openExtensionPrefs(uuid, parentWindow, options);
|
||||
}
|
||||
|
||||
ReloadExtensionAsync(params, invocation) {
|
||||
|
Loading…
Reference in New Issue
Block a user