grabHelper: Query stage for target actor instead of event.get_source()
Events are going to stop containing the destinatary, so stop using this API. Querying the stage is equivalent and ensured to be up-to-date. Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2216>
This commit is contained in:
parent
4735193456
commit
4a8b8e6dd5
@ -265,9 +265,11 @@ var GrabHelper = class GrabHelper {
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
}
|
||||
|
||||
const targetActor = global.stage.get_event_actor(event);
|
||||
|
||||
if (type === Clutter.EventType.ENTER ||
|
||||
type === Clutter.EventType.LEAVE ||
|
||||
this.currentGrab.actor.contains(event.get_source()))
|
||||
this.currentGrab.actor.contains(targetActor))
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
|
||||
if (Main.keyboard.shouldTakeEvent(event))
|
||||
@ -279,7 +281,7 @@ var GrabHelper = class GrabHelper {
|
||||
if (press || touchBegin)
|
||||
this._ignoreUntilRelease = true;
|
||||
|
||||
let i = this._actorInGrabStack(event.get_source()) + 1;
|
||||
let i = this._actorInGrabStack(targetActor) + 1;
|
||||
this.ungrab({ actor: this._grabStack[i].actor, isUser: true });
|
||||
return Clutter.EVENT_STOP;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user