在 GTK+ 中让窗口显示在全屏窗口上方

Posted

技术标签:

【中文标题】在 GTK+ 中让窗口显示在全屏窗口上方【英文标题】:Let a window display above a fullscreen window in GTK+ 【发布时间】:2012-08-08 13:05:36 【问题描述】:

我有一个全屏窗口 (winA) 和另一个始终位于顶部的窗口 (winB)。

现在我需要让 winB 显示在 winA 上方,而 winA 仍然在任何其他窗口上方。

如何在 GTK+ 中做到这一点?谢谢。 (也许这需要 Xlib?)

PS1:我不会使用 POPUP 窗口,因为它会将 所有 窗口放在它下面。我只需要将 winB 放在 winA 上,而不是所有其他人。例如,如果我在全屏模式下观看视频,我不希望看到 winB。但是如果 winA 在这里,winB 就在它上面。

PS2:winA 和 winB 在同一个程序中。在这种情况下,它可能会简化解决方案。

【问题讨论】:

【参考方案1】:

告诉窗口管理器将 winB 保持在 winA 之上的主要方法是通过“transient for”提示,在 GTK+ 中设置为gtk_window_set_transient_for()。

如果您的窗口不是对话框,则行为可能不会如您所愿;您可以尝试使用gtk_window_set_type_hint() 设置语义提示,看看是否可以帮助您。

但行为基本上会随窗口管理器而变化(这是预期的)。所以你有点需要忍受这一点,并假设人们会使用他们想要的 WM。

【讨论】:

以上是关于在 GTK+ 中让窗口显示在全屏窗口上方的主要内容,如果未能解决你的问题,请参考以下文章

C ++如何使用处理程序检测窗口状态是不是在全屏?

强制 Tkinter 窗口停留在全屏顶部 - Windows 10

Pygame 窗口在全屏模式下没有响应

Electron 应用程序 - 如何在全屏模式下禁用/隐藏任务栏中的窗口

Qt全屏窗口隐藏Win8/10触摸键盘

Bootstrap 轮播标题未在全屏 1920 x 1080 中显示?