From c8d91b2c309632e9c690b20800ed66ed4beabf02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Fri, 29 May 2020 00:35:27 +0200 Subject: [PATCH] screenshot: Return an error when operation is blocked Right now _createScreenshot() returns a tuple that indicates failure when a sender requests a screenshot operation before a previously started operation finished. However that doesn't work for the PickColor() method, as it uses a different return type than the other methods. Address this by returning an error instead, which works in any case; arguably trying to start multiple operations in parallel is an error by the caller more than it is a failed operation anyway. https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1288 --- js/ui/screenshot.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/js/ui/screenshot.js b/js/ui/screenshot.js index 7aed8d01b..6f88e1a20 100644 --- a/js/ui/screenshot.js +++ b/js/ui/screenshot.js @@ -30,7 +30,9 @@ var ScreenshotService = class { let sender = invocation.get_sender(); if (this._screenShooter.has(sender) || lockedDown) { - invocation.return_value(GLib.Variant.new('(bs)', [false, ''])); + invocation.return_error_literal( + Gio.IOErrorEnum, Gio.IOErrorEnum.BUSY, + 'There is an ongoing operation for this sender'); return null; }