[gnome-shell] screenshot: Properly clean up if PickColor() is cancelled



commit 55c287280b4d77bc94dce32b8c9e20d318d8c14d
Author: Florian Müllner <fmuellner gnome org>
Date:   Fri May 29 00:27:34 2020 +0200

    screenshot: Properly clean up if PickColor() is cancelled
    
    We currently only remove the screenshot operation from the shooter
    map if the color pick operation completed successfully, but not if
    it was cancelled. As a result, we now reject any further requests
    from the same sender because we assume that there is an ongoing
    operation.
    
    Fix this by moving the cleanup to a finally clause that runs for
    both code paths.
    
    https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1288

 js/ui/screenshot.js | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
---
diff --git a/js/ui/screenshot.js b/js/ui/screenshot.js
index 5b7e093872..de5d3c0630 100644
--- a/js/ui/screenshot.js
+++ b/js/ui/screenshot.js
@@ -276,12 +276,13 @@ var ScreenshotService = class {
                     blue / 255.0,
                 ]),
             }]);
-            this._removeShooterForSender(invocation.get_sender());
             invocation.return_value(retval);
         } catch (e) {
             invocation.return_error_literal(
                 Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED,
                 'Operation was cancelled');
+        } finally {
+            this._removeShooterForSender(invocation.get_sender());
         }
     }
 };


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]