Skip to content

v2.17.1 — Overlay stability

Choose a tag to compare

@haxllo haxllo released this 03 Sep 17:01
· 701 commits to master since this release

Overlay stability release — fixes the hotkey flash bug, adds keyboard selection visibility, and cleans up native caption drag.

What changed

  • Hotkey flash: pressing Ctrl+Space after the overlay sat idle for a few seconds used to flash open then immediately close. The overlay now correctly detects focus-flaps from Explorer re-assertion and defers dismissal long enough for WebView2 to settle.
  • Keyboard selection: arrow-key selection in the overlay now has visible feedback — selected rows get a highlight ring so you can see where you are without reaching for the mouse.
  • Caption drag: the overlay can now be dragged by its title area using native Win32 caption drag, and the search input gets select-all on focus for faster re-typing.
  • Tray menu: removed "Open Config" from the tray context menu (was redundant with Settings).

Bug Fixes

  • Hotkey flash after idle: extended the post-show quiescence window to 2 seconds so Explorer/Task Manager re-assertion cycles don't trigger a spurious Escape. Added epoch-based cancellation for deferred-hide threads so rapid hide→show toggles can't let a stale thread fire on the new show.
  • FocusExisting dead code: on_hotkey now correctly returns FocusExisting when the overlay is visible but unfocused (e.g. after Explorer steals focus), instead of always hiding. The handler refocuses the input without re-sending the Show command.
  • Stale Painted rejection: the host now rejects Painted events when the overlay was already hidden between Show and first paint, preventing a hidden window from suddenly appearing.
  • FocusReassert scoped: focus re-assertion only fires when the overlay is visible and actually unfocused, not unconditionally.
  • Grid-view hover border: removed unintended hover border on grid-view rows.
  • Selected row border: removed inset border on .selected row that clashed with the hover style.

Architecture

  • Deferred-hide epoch counter: added AtomicU64 epoch to the host event loop. Show and Hide bump the epoch; deferred-hide threads capture it before sleeping and skip Escape if the epoch advanced. Eliminates the race window between rapid hotkey toggles.

Commit Log

  • 3e4c697 fix: overlay hotkey flash — FocusExisting + deferred-hide epoch cancellation
  • 76e478f fix(tray): remove Open Config from tray menu
  • c3429cf fix(overlay): drop hover border on grid-view rows
  • 55c29a6 fix(overlay): native caption drag + select-all input UX (#22)
  • 343fcbb fix(overlay): drop inset border on .selected row
  • 7efb8ed fix(overlay): visible + a11y feedback for keyboard selection (#17)
  • 42cb713 investigate(issue-17): keyboard navigation gap report
  • 5e257c1 fix(overlay): prevent flash on first hotkey press after long idle (#19)
  • 0df2344 Update README.md
  • af42e3b cleanup
  • b914372 feat(settings): add fade animation for window open/close
  • befea40 fix: MIT license line wrapping to match OSI standard
  • 513bf24 doc fix
  • c33e64c release: v2.17.1

Binary