Skip to content

Ghosting when tiling a window moves it to the next monitor #590

Description

@KMouratidis

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions