linux - 如何使用 XLib 创建映射但不可见的窗口?

标签 linux keyboard-events xlib

我在做一个游戏项目中基于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/

相关文章:

linux - 打包程序选项以避免在 shell 配置时发出警告

linux - systemd中CPUQuota的使用

android - 如何更改键盘按钮 "Go"功能

c - 缩放 MandelBrot 集

linux - 如何解决 Linux 中损坏的文本文件?

linux - 为什么 "echo l >/proc/sysrq-trigger"调用跟踪输出总是相似的?

java - Java游戏的键盘输入

JavaFX - 获取非 ASCII 字符的 KeyEvent

linux - 多个 X 服务器上的 x11/xlib XCreateSimpleWindow

c - 如何获取与给定 KeySym 关联的 KeyCode?