Исключая некоторые ключи из XGrabKeyboard

Рассмотрим приложение, в котором желательно захватить клавиатуру, когда она сфокусирована, чтобы захватить все команды менеджера окон (Alt + F4 и еще много чего) для обработки. Теперь у этого есть недостаток, заключающийся в том, что у пользователя нет возможности переключаться на другое приложение или виртуальный рабочий стол с помощью клавиатуры, когда клавиатура захватывается. Я хотел бы иметь пользовательский белый список сочетаний клавиш (скажем, сочетаний клавиш для переключения виртуальных рабочих столов), которые исключены из захвата.

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

Каким-то образом скажите X, чтобы она продолжала обрабатываться как обычно Это звучит как более естественный способ сделать это, но я не могу найти способ сделать это, илиОтключите клавиатуру и повторно отправьте событие вручную диспетчеру окон для обработки, однако я не знаю, куда его отправить (корневое окно?) Или это будет работать.

Кто-нибудь может заполнить пробелы в тех? Любые другие предложения?

Если нет способа исключить клавиши из захвата, я думаю, мне придется довольствоваться наличием «клавиши выхода», которая при нажатии нажимает на клавиатуру. Пользователь должен будет нажать и то, и другое, затем команду менеджера окон, что не так приятно.

Ответы на вопрос(1)

Ваш ответ на вопрос