首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XCB顶部设置窗口不工作

XCB顶部设置窗口不工作
EN

Stack Overflow用户
提问于 2016-08-17 11:33:09
回答 1查看 735关注 0票数 0

我正在尝试设置一个托管窗口,使其始终位于顶部。但是,此代码不起作用:

我的代码是js-ctype,但这是一个XCB API问题:

代码语言:javascript
复制
var rez_focus = xcb_get_input_focus_reply(c, xcb_get_input_focus(c), null);

var change_list = xcb_atom_t.array()([cachedXCBAtom('_NET_WM_STATE_ABOVE')]);
var req_change = xcb_change_property(c, XCB_PROP_MODE_REPLACE, rez_focus.focus, cachedXCBAtom('_NET_WM_STATE'), XCB_ATOM_ATOM, 32, change_list.length, change_list);

xcb_flush(c);

通过获得窗口标题,我测试了我是否有正确的窗口。然而,上面的代码并没有使窗口总是在顶部。你能告诉我。

我有一种感觉,也许我得到的窗口不是“所有者窗口”,这意味着它不负责总是在顶部,所以我确实查询树,并尝试在顶部的每个窗口(除了根),但没有工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-21 09:58:07

首先,您应该说明使用哪个窗口管理器进行测试,并通过根窗口上的_NET_SUPPORTED验证窗口管理器是否支持这个原子。

其次,您违反了规范。仅当窗口被撤回并映射时,窗口管理器才会直接设置原子。如果要对已映射的窗口执行此操作,则需要将客户端消息改为根窗口。

请参阅文献资料

每当撤回的窗口请求被映射时,窗口管理器都应该遵守_NET_WM_STATE的要求。希望更改窗口状态的客户端必须向根窗口发送_NET_WM_STATE客户端消息(请参见下面)。窗口管理器必须更新此属性以反映窗口的当前状态。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38995480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档