使用 XCB 获取活动窗口(具有输入焦点的窗口)的正确方法是什么?
reply = xcb_get_input_focus_reply(connection, xcb_get_input_focus(connection), nullptr);
std::cout << "WId: " << reply->focus;
这似乎有时有效,有时无效。
我还看到有人提到查询 _NET_ACTIVE_WINDOW 根窗口属性,但我不知道这是如何完成的,XCB 是否总是支持它?
编辑: 上面使用xcb_get_input_focus的方法只是其中的一部分,在得到reply->focus之后,你需要通过xcb_query_tree跟进父窗口。