Win+D (Show Desktop) does not hide the overlay - decide normal vs topmost window
- Dominant language
- Python
- Stars
- 1
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
## Problem
Pressing **Win+D** (Show Desktop) does not hide the PlotRuler overlay along with other windows — it stays visible floating over the desktop.
## Why
Windows implements Show Desktop by *raising the desktop above everything in the window stack*, but it explicitly **cannot cover always-on-top (topmost)** windows. PlotRuler is topmost by design (it's an overlay that must float above the graph being read), so the OS can't hide it natively on Win+D without dropping that flag.
`WS_EX_TOOLWINDOW` is not the blocker; **`WindowStaysOnTopHint` (WS_EX_TOPMOST)** is the reason it stays up.
## Options considered
1. **Intercept Win+D / Win+M with a Win32 low-level keyboard hook, then hide the overlay to the tray.** Keeps it topmost for reading graphs, disappears on show-desktop like a normal window. Slightly more Win32 code to maintain (hook lifecycle, edge cases like the taskbar "Show Desktop" button, which a keyboard hook won't catch).
2. **Drop the always-on-top flag and make it a fully normal window.** Simplest and most predictable — appears in taskbar / Alt+Tab, hides on Win+D. But it no longer floats above other apps, so reading over a graph requires bringing it forward manually. This conflicts with the core overlay use case.
3. **Hybrid:** keep topmost for the reading overlay, but respond to Win+D/Win+M by hiding to tray via a hook.
## Other "normal window" behaviors
While here, this is a broader question: the overlay currently does not behave like a normal window for several OS operations. The issue is to decide how far to go toward "normal window" semantics (taskbar/Alt-Tab presence, minimize-all behavior, etc.) versus staying a specialized always-on-top tool.
## Decision
Undecided — needs more real-world testing of the current topmost behavior before choosing. Filing to track the tradeoff and revisit.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.