shellDBus: Implement all methods asynchronously

In order to restrict callers, we will need access to the invocation,
not just the unpacked method parameters.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3943

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1970>
This commit is contained in:
Florian Müllner 2021-06-17 15:29:42 +02:00 committed by Marge Bot
parent 2a3e297218
commit 3adad0da81

View File

@ -72,11 +72,26 @@ var GnomeShell = class {
return [success, returnValue]; return [success, returnValue];
} }
FocusSearch() { /**
* Focus the overview's search entry
*
* @param {...any} params - method parameters
* @param {Gio.DBusMethodInvocation} invocation - the invocation
* @returns {void}
*/
FocusSearchAsync(params, invocation) {
Main.overview.focusSearch(); Main.overview.focusSearch();
invocation.return_value(null);
} }
ShowOSD(params) { /**
* Show OSD with the specified parameters
*
* @param {...any} params - method parameters
* @param {Gio.DBusMethodInvocation} invocation - the invocation
* @returns {void}
*/
ShowOSDAsync([params], invocation) {
for (let param in params) for (let param in params)
params[param] = params[param].deep_unpack(); params[param] = params[param].deep_unpack();
@ -97,14 +112,31 @@ var GnomeShell = class {
icon = Gio.Icon.new_for_string(serializedIcon); icon = Gio.Icon.new_for_string(serializedIcon);
Main.osdWindowManager.show(monitorIndex, icon, label, level, maxLevel); Main.osdWindowManager.show(monitorIndex, icon, label, level, maxLevel);
invocation.return_value(null);
} }
FocusApp(id) { /**
* Focus specified app in the overview's app grid
*
* @param {string} id - an application ID
* @param {Gio.DBusMethodInvocation} invocation - the invocation
* @returns {void}
*/
FocusAppAsync([id], invocation) {
Main.overview.selectApp(id); Main.overview.selectApp(id);
invocation.return_value(null);
} }
ShowApplications() { /**
* Show the overview's app grid
*
* @param {...any} params - method parameters
* @param {Gio.DBusMethodInvocation} invocation - the invocation
* @returns {void}
*/
ShowApplicationsAsync(params, invocation) {
Main.overview.show(ControlsState.APP_GRID); Main.overview.show(ControlsState.APP_GRID);
invocation.return_value(null);
} }
GrabAcceleratorAsync(params, invocation) { GrabAcceleratorAsync(params, invocation) {