Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Win+D (Show Desktop) does not hide the overlay - decide normal vs topmost window

未关闭
#1 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
5/5
预计耗时
一周以上
新手友好度
35/100
Issue 类型
功能
描述清晰度
需要澄清
活跃度
活跃
技术栈
python
领域
desktop

调研方向

首先,在 Windows 上使用当前置顶的 overlay 重现 Win+D 的行为,并将其与 Win+M 以及任务栏的“显示桌面”操作进行比较。针对任务栏、Alt+Tab、全部最小化和 overlay 的使用,评估普通窗口、键盘钩子和混合方案;完成意味着选择并记录一种行为。

由索引模型根据 Issue 内容生成。

描述

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.

主要语言
Python
星标
1
派生
0
PR 合并指标
30 天内没有已合并 PR

环境准备

我们还没有检查这个项目的环境配置文件。先看它的 README,通用步骤见我们的新手贡献指南。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

endolith/plotruler 的其他 Issue

查看 endolith/plotruler 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。