Как создать сопоставленное, но не видимое окно с XLib? - PullRequest
2 голосов
/ 14 августа 2010

Я работаю над инструментом проверки ввода-вывода на основе Linux в игровом проекте.Он написан на C ++, и, поскольку он использует тот же модуль ввода-вывода, что и наша игра, он основан на OIS 1.2.Таким образом, хотя все, что мне нужно, это распечатывать пользовательские вводы на консоли, мне все равно нужно создать окно для OIS.

Итак, возникает вопрос: как мне создать отображенное окно, пока оно еще невидимои обрабатывает события клавиатуры?

Я не могу отменить отображение окна, поскольку оно больше не будет обрабатывать события клавиатуры.Я также не могу найти функцию для показа / скрытия окна. (Возможно, я ищу в неправильном направлении ...)

Мой маленький инструмент теперь работает нормально, за исключением глупого пустого окна верхнего уровня, которое нуждается вбыть сосредоточенным на обработке событий клавиатуры ...

Любой совет приветствуется.

Спасибо !!!

1 Ответ

2 голосов
/ 15 августа 2010

Прочитав этот пост: Библиотека ввода Linux / X11 без создания окна , я понял, что моя проблема в том, что я неправильно понял философию X11.Все, что мне нужно сделать, это просто передать дескриптор корневого окна в OIS и установить флаг x11_grabkeyboard как true.Единственный недостаток - возможно, я с трудом отлаживаю свою программу с помощью gdb, поскольку клавиатура захвачена ...

Хотя моя ситуация решена, остается одна вещь.

В каждой прочитанной статье говорилось, что окно InputOnly не будет видимым и способно обрабатывать события ввода, в то время как мое окно InputOnly будет абсолютно видимым после сопоставления ...

Возможно, это мой Linux,или опять недоразумение ...

...