【问题标题】:XLib: How do I return to windowed mode once I make it full screen?XLib:全屏后如何返回窗口模式?
【发布时间】:2012-01-22 07:10:13
【问题描述】:

我可以让我的应用全屏显示,但我无法让它回到具有边框可见的窗口模式。我试图调用 XDeleteProperty 来清除全屏设置,但它似乎不起作用。

【问题讨论】:

  • 你到底是怎么做到全屏的?请注意,全屏不在 Xlib 的范围内,您可能正在使用 NETWM/EWMH 或一些 hack。

标签: c x11 xlib


【解决方案1】:

如果您使用 _NET_WM_STATE http://standards.freedesktop.org/wm-spec/latest/ar01s05.html#id2569140 则在映射窗口之前设置属性,但在映射窗口之后您必须发送客户端消息并且窗口管理器更新属性。阅读 EWMH 的开头部分“要更改映射窗口的状态,客户端必须向根窗口发送 _NET_WM_STATE 客户端消息...”

这是因为一旦您映射了窗口管理器负责维护其状态的窗口,如果应用程序和 WM 都可以直接修改该属性,则会出现竞争。

查看工具包的源代码,例如 GTK+ 示例代码。

【讨论】:

    猜你喜欢
    • 2014-08-16
    • 1970-01-01
    • 2019-07-23
    • 2012-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-09
    • 1970-01-01
    相关资源
    最近更新 更多