Repository navigation
Fix: Suppress active-hint flash on new auto-tiled windows - #111
Merged
Merged
Conversation
Prevent the active hint from flashing at the initial centered position before a new auto-tiled window moves to its tile. - Defer showing borders until the first tile pass starts. - Prevent `hide_border()` from cancelling the post-tile settle timer. - Re-arm the settle timer on geometry changes while the window remains at its pre-tile rect.
benleppke
marked this pull request as ready for review
October 11, 2026 15:36
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Opening a new auto-tiled window briefly flashes the active hint at the window's initial position before it moves to its final auto-tiled position.
Screencast.From.2026-10-11.09-04-07.mp4
This behavior is very brief (a few ms), but you can see that the active hint border displays on the windows pre-tiled position. This can be a bit visually distracting and can shift attention to the wrong position on the screen.
Fix
Defer showing the hint until the first tile pass starts. To do that we need to:
hide_border()from cancelling the post-tile settle timer (focus bookkeeping hides every window's border and would otherwise disarm the guard). The timer is still cleaned up indestroy()and replaced by the nextmark_border_settling().Screencast.From.2026-10-11.09-41-03.mp4
Now the active hint is only displayed once the window is placed in its final auto-tiled position. Generally this is a bit smoother looking and avoids briefly shifting the users attention away from the real position of the active window.
Additional considerations
Initially I tried a simpler fix and just deferred the initial show (and kept the 120ms settle timer armed). That worked on my workstation but when testing on a slower virtual machine the behavior was inconsistent. The 120ms timer can expire before Mutter has reflected the position so the hint is sometimes still drawn at the old centered location:
screencast-failed-fix.mp4
Here you can see it still fails most of the time on this vm which takes a bit of time to open and position the new windows.