dbusServices/extensions: Give extensions access to the prefs window
The current preference API - buildPrefsWidget() - predates client-side decorations. While extension authors have been finding ways around the limitation of not having access to the window/titlebar, the change to the new Adwaita API seems like a good time for an updated API that officially provides that access (as far as allowed by libadwaita). Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2012>
This commit is contained in:
parent
285ebe020c
commit
e07bc62fbd
@ -23,9 +23,16 @@ var ExtensionPrefsDialog = GObject.registerClass({
|
|||||||
const prefsModule = extension.imports.prefs;
|
const prefsModule = extension.imports.prefs;
|
||||||
prefsModule.init(extension.metadata);
|
prefsModule.init(extension.metadata);
|
||||||
|
|
||||||
|
if (prefsModule.fillPreferencesWindow) {
|
||||||
|
prefsModule.fillPreferencesWindow(this);
|
||||||
|
|
||||||
|
if (!this.visible_page)
|
||||||
|
throw new Error('Extension did not provide any UI');
|
||||||
|
} else {
|
||||||
const widget = prefsModule.buildPrefsWidget();
|
const widget = prefsModule.buildPrefsWidget();
|
||||||
const page = this._wrapWidget(widget);
|
const page = this._wrapWidget(widget);
|
||||||
this.add(page);
|
this.add(page);
|
||||||
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
this._showErrorPage(e);
|
this._showErrorPage(e);
|
||||||
logError(e, 'Failed to open preferences');
|
logError(e, 'Failed to open preferences');
|
||||||
|
Loading…
Reference in New Issue
Block a user