Track the background actor during animation (X11)

This ensures all mouse input is redirected to clutter.

As #80 shows, weird things can happen when mouse clicks occurs in the region of
a "visible" X11 window with a hidden actor.

Fixes #80
This commit is contained in:
Ole Jørgen Brønner 2018-12-07 22:16:27 +01:00
parent 2483c0b04e
commit 5d0f037d3e

View File

@ -611,10 +611,25 @@ class Space extends Array {
this.fixOverlays();
if (!Meta.is_wayland_compositor()) {
// See startAnimate
Main.layoutManager.untrackChrome(this.background);
}
this._isAnimating = false;
this.emit('move-done');
}
startAnimate(grabWindow) {
if (!this._isAnimating && !Meta.is_wayland_compositor()) {
// Tracking the background fixes issue #80
// It also let us activate window clones clicked during animation
// Untracked in moveDone
Main.layoutManager.trackChrome(this.background);
}
this.visible.forEach(w => {
let actor = w.get_compositor_private();
if (!actor)
@ -628,6 +643,8 @@ class Space extends Array {
actor.hide();
w.clone.show();
});
this._isAnimating = true;
}
fixOverlays(metaWindow) {