From 380d61dc431376833546380c8089ff4bdcdd3fce Mon Sep 17 00:00:00 2001 From: Sebastian Keller Date: Wed, 28 Apr 2021 07:15:03 +0200 Subject: [PATCH] screenshot: Ignore events in SelectArea after making a selection The grab and actor are only removed after the selection rectangle has finished fading out. During this time it was possible to still change the position of the selection rectangle. Related: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2761 Part-of: --- js/ui/screenshot.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/js/ui/screenshot.js b/js/ui/screenshot.js index e736c3f6c..81ab516b1 100644 --- a/js/ui/screenshot.js +++ b/js/ui/screenshot.js @@ -384,6 +384,9 @@ class SelectArea extends St.Widget { } vfunc_button_press_event(buttonEvent) { + if (this._result) + return Clutter.EVENT_PROPAGATE; + [this._startX, this._startY] = [buttonEvent.x, buttonEvent.y]; this._startX = Math.floor(this._startX); this._startY = Math.floor(this._startY); @@ -393,7 +396,7 @@ class SelectArea extends St.Widget { } vfunc_button_release_event() { - if (this._startX === -1 || this._startY === -1) + if (this._startX === -1 || this._startY === -1 || this._result) return Clutter.EVENT_PROPAGATE; this._result = this._getGeometry();