如何使用xcb提供_NET_WM_STATE_FULLSCREEN提示?

cdb*_*ter 5 fullscreen xcb ewmh

我正在尝试使用xcb编写一个全屏应用程序用于我自己的启发,我遇到上述问题.我发现了一些使用Xlib执行此操作的代码,但没有使用xcb.我找到了xcb_ewmh_connection_t结构,我试探性地使用它:

xcb_connection_t *Connection = xcb_connect(NULL, NULL);
xcb_ewmh_connection_t EWMH;
xcb_intern_atom_cookie_t *EWMHCookie = xcb_ewmh_init_atoms(Connection, &EWMH);
Run Code Online (Sandbox Code Playgroud)

然后使用结构内部的原子EWMH._NET_WM_STATE

鉴于这个小背景,我怎么能暗示窗口管理器窗口应该全屏?

Jam*_*arp 3

检查了一下xcb_ewmh.h,我觉得你还需要打电话

if(!xcb_ewmh_init_atoms_replies(&EWMH, EWMHCookie, NULL))
    /* handle errors */;
Run Code Online (Sandbox Code Playgroud)

完成此操作后,_NET_WM_STATE文档应该有助于了解如何使用此特定属性。

有关使用属性与窗口管理器通信的技术的背景信息,请参阅有关客户端属性的ICCCM部分。

有关如何设置一般属性的信息,请参阅ChangeProperty请求。xcb_change_property它通过通常的协议存根规则映射到函数。

我希望这有足够的参考资料来帮助您继续前进!

  • 我想到了!对于那个很抱歉。通过使用 XCB_ATOM_ATOM 作为类型而不是 XCB_ATOM,它可以按预期工作。 (3认同)