[gnome-shell] grabHelper: Add (promised-based) grabAsync()
- From: Florian Müllner <fmuellner src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] grabHelper: Add (promised-based) grabAsync()
- Date: Fri, 20 Dec 2019 15:15:33 +0000 (UTC)
commit 93fa1034f51594fa4e61d2f8bde8ecdae39ddbdc
Author: Florian Müllner <fmuellner gnome org>
Date: Thu Dec 19 03:28:50 2019 +0100
grabHelper: Add (promised-based) grabAsync()
Some GrabHelper uses are in the form:
doPreGrabStuff();
this._grabHelper.grab({
onUngrab: () => {
undoPreGrabStuff();
},
});
A promise-based variant allows to write this more cleanly as:
doPreGrabStuff();
await this._grabHelper.grabAsync();
undoPreGrabStuff();
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/903
js/ui/grabHelper.js | 9 +++++++++
1 file changed, 9 insertions(+)
---
diff --git a/js/ui/grabHelper.js b/js/ui/grabHelper.js
index ffe07b2ec9..2ba2aad9a3 100644
--- a/js/ui/grabHelper.js
+++ b/js/ui/grabHelper.js
@@ -194,6 +194,15 @@ var GrabHelper = class GrabHelper {
return true;
}
+ grabAsync(params) {
+ return new Promise((resolve, reject) => {
+ params.onUngrab = resolve;
+
+ if (!this.grab(params))
+ reject(new Error('Grab failed'));
+ });
+ }
+
_takeModalGrab() {
let firstGrab = this._modalCount == 0;
if (firstGrab) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]