Skip to content

Fix: stop dragged auto-tiled windows flickering - #114

Merged
oliwebd merged 1 commit into
oliwebd:mainfrom
benleppke:fix/dragged-window-flicker
Oct 22, 2026
Merged

oliwebd merged 1 commit into
oliwebd:mainfrom
benleppke:fix/dragged-window-flicker

Conversation

@benleppke

@benleppke benleppke commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

Problem

When auto-tiling is enabled, dragging a tiled window with the mouse makes it rapidly flicker between its original tiled position and the current cursor position. This is most noticeable when using multiple displays, but the same behavior occurs on a single display as well (though it is less noticeable and harder to reproduce).

o-tiling_dragged_window_bug_two_displays.mp4
o-tiling_dragged_window_bug_one_display.mp4

Root Cause

A tiled window stays attached to its old position for the drag operation and is reattached on drop. Any layout pass that runs mid-drag moves it back to its old tile.

Fix

To fix this we need two small changes:

  • Don't reposition a window that is being actively grabbed/repositioned by the user
  • Drop any pending reflow operations when a user grabs a window
o-tiling_dragged_window_fix_two_displays.mp4.mp4
o-tiling_dragged_window_fix_one_display.mp4

@benleppke
benleppke marked this pull request as ready for review October 20, 2026 17:14
A tiled window stays attached to its old position while it is being dragged,
so any layout pass during the drag can move it back there and fight the
pointer which causes it to flicker between both positions rapidly.

Skip moving a window the user is holding, and drop any pending reflow when a
drag starts.
@benleppke
benleppke force-pushed the fix/dragged-window-flicker branch from 26ace32 to f79748a Compare October 20, 2026 22:27
@oliwebd
oliwebd merged commit 7be3016 into oliwebd:main Oct 22, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants