[gnome-shell] extensionSystem: Add method for opening extension prefs
- From: Robert Mader <rmader src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] extensionSystem: Add method for opening extension prefs
- Date: Fri, 3 Apr 2020 13:42:34 +0000 (UTC)
commit 45bc850715f875aca705ddccc39b9cc46e757bd1
Author: Florian Müllner <fmuellner gnome org>
Date: Wed Apr 1 21:04:03 2020 +0200
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
js/ui/extensionSystem.js | 18 ++++++++++++++++++
js/ui/shellDBus.js | 11 +----------
2 files changed, 19 insertions(+), 10 deletions(-)
---
diff --git a/js/ui/extensionSystem.js b/js/ui/extensionSystem.js
index 4fab0c334e..4cce0c52de 100644
--- a/js/ui/extensionSystem.js
+++ b/js/ui/extensionSystem.js
@@ -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)
diff --git a/js/ui/shellDBus.js b/js/ui/shellDBus.js
index c413df291e..75a2f341d0 100644
--- a/js/ui/shellDBus.js
+++ b/js/ui/shellDBus.js
@@ -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) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]