Describe the bug
I have a single, simple tiling setup with 2 side by side windows (just like the gnome default), 3 monitors side by side (A-B-C, same resolution and scaling), and Super+Arrow to tile left/right. Let's say I tile a Window to the right side of monitor A, and press Super+Right, then the window (correctly) moves to the left side of monitor B, however, during that transition there is a visual artifact that looks like ghosting that reaches all the way to the right of screen B.
I think the reason is that the window is first moved to the next monitor and then resized, e.g. here: https://github.com/domferr/tilingshell/blob/main/src/components/tilingsystem/tilingManager.ts#L993-L1002
I tried skipping the move_to_monitor animation like this:
...
// move and resize the window to the current selection
if (window.get_monitor() !== this._monitor.index) {
Main.wm.skipNextEffect(windowActor);
}
window.move_to_monitor(this._monitor.index);
window.move_resize_frame(
...
and the ghosting is gone, although so is the animation. I also tried something like:
...
TilingShellWindowManager.easeMoveWindow({
window,
from: beforeRect,
to: destRect,
duration: 1, // tried higher values too, e.g. 250
monitorIndex: this._monitor.index,
});
// @ts-expect-error "Main.wm has the "private" function _prepareAnimationInfo"
Main.wm._prepareAnimationInfo(
...
which also didn't cause ghosting, but the animation was weird.
Information (please complete the following):
- Tiling Shell version: 17.3
- GNOME version: 50.3
Describe the bug
I have a single, simple tiling setup with 2 side by side windows (just like the gnome default), 3 monitors side by side (A-B-C, same resolution and scaling), and Super+Arrow to tile left/right. Let's say I tile a Window to the right side of monitor A, and press Super+Right, then the window (correctly) moves to the left side of monitor B, however, during that transition there is a visual artifact that looks like ghosting that reaches all the way to the right of screen B.
I think the reason is that the window is first moved to the next monitor and then resized, e.g. here: https://github.com/domferr/tilingshell/blob/main/src/components/tilingsystem/tilingManager.ts#L993-L1002
I tried skipping the
move_to_monitoranimation like this:... // move and resize the window to the current selection if (window.get_monitor() !== this._monitor.index) { Main.wm.skipNextEffect(windowActor); } window.move_to_monitor(this._monitor.index); window.move_resize_frame( ...and the ghosting is gone, although so is the animation. I also tried something like:
... TilingShellWindowManager.easeMoveWindow({ window, from: beforeRect, to: destRect, duration: 1, // tried higher values too, e.g. 250 monitorIndex: this._monitor.index, }); // @ts-expect-error "Main.wm has the "private" function _prepareAnimationInfo" Main.wm._prepareAnimationInfo( ...which also didn't cause ghosting, but the animation was weird.
Information (please complete the following):