我在做一个游戏项目中基于Linux的I/O验证工具。它是用 C++ 编写的,并且由于使用与我们的游戏相同的 I/O 模块,它基于 OIS 1.2。因此,尽管我只需要在控制台上打印用户的输入,我仍然需要为 OIS 创建一个窗口。
所以我的问题来了:如何创建一个映射窗口,同时它仍然不可见并处理键盘事件?
我无法取消映射窗口,因为它不再处理任何键盘事件。我也找不到显示/隐藏窗口的功能。(也许我搜索了错误的方向...)
我的小工具现在工作正常,除了有一个愚蠢的顶级空窗口需要集中处理键盘事件...
欢迎任何建议。
谢谢!!!
最佳答案
阅读这篇文章后:Linux/X11 input library without creating a window , 我意识到我的问题是我误解了 X11 的哲学。我需要做的只是将根窗口句柄传递给 OIS,并将 x11_grabkeyboard 标志设置为 true。唯一的缺点是我可能很难用 gdb 调试我的程序,因为键盘被捕获了......
虽然我的情况已经解决了,但还剩下一件事。
我读过的每篇文章都说 InputOnly 窗口将不可见并且能够处理输入事件,而我的 InputOnly 窗口在映射后绝对可见......
也许是我的 Linux,或者又是一个误会......
关于linux - 如何使用 XLib 创建映射但不可见的窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3481750/