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: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1825>
This commit is contained in:
parent
548e18ad7e
commit
380d61dc43
@ -384,6 +384,9 @@ class SelectArea extends St.Widget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
vfunc_button_press_event(buttonEvent) {
|
vfunc_button_press_event(buttonEvent) {
|
||||||
|
if (this._result)
|
||||||
|
return Clutter.EVENT_PROPAGATE;
|
||||||
|
|
||||||
[this._startX, this._startY] = [buttonEvent.x, buttonEvent.y];
|
[this._startX, this._startY] = [buttonEvent.x, buttonEvent.y];
|
||||||
this._startX = Math.floor(this._startX);
|
this._startX = Math.floor(this._startX);
|
||||||
this._startY = Math.floor(this._startY);
|
this._startY = Math.floor(this._startY);
|
||||||
@ -393,7 +396,7 @@ class SelectArea extends St.Widget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
vfunc_button_release_event() {
|
vfunc_button_release_event() {
|
||||||
if (this._startX === -1 || this._startY === -1)
|
if (this._startX === -1 || this._startY === -1 || this._result)
|
||||||
return Clutter.EVENT_PROPAGATE;
|
return Clutter.EVENT_PROPAGATE;
|
||||||
|
|
||||||
this._result = this._getGeometry();
|
this._result = this._getGeometry();
|
||||||
|
Loading…
Reference in New Issue
Block a user