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
(cherry picked from commit 45bc850715
)
This commit is contained in:
parent
15e72da648
commit
efee3aa749
@ -215,6 +215,25 @@ var ExtensionManager = class {
|
|||||||
return true;
|
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,
|
||||||
|
(conn, res) => conn.call_finish(res));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
notifyExtensionUpdate(uuid) {
|
notifyExtensionUpdate(uuid) {
|
||||||
let extension = this.lookup(uuid);
|
let extension = this.lookup(uuid);
|
||||||
if (!extension)
|
if (!extension)
|
||||||
|
@ -316,17 +316,7 @@ var GnomeShellExtensions = class {
|
|||||||
}
|
}
|
||||||
|
|
||||||
OpenExtensionPrefs(uuid, parentWindow, options) {
|
OpenExtensionPrefs(uuid, parentWindow, options) {
|
||||||
Gio.DBus.session.call(
|
Main.extensionManager.openExtensionPrefs(uuid, parentWindow, options);
|
||||||
'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,
|
|
||||||
(conn, res) => conn.call_finish(res));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ReloadExtensionAsync(params, invocation) {
|
ReloadExtensionAsync(params, invocation) {
|
||||||
|
Loading…
Reference in New Issue
Block a user