Исключая некоторые ключи из XGrabKeyboard
Рассмотрим приложение, в котором желательно захватить клавиатуру, когда она сфокусирована, чтобы захватить все команды менеджера окон (Alt + F4 и еще много чего) для обработки. Теперь у этого есть недостаток, заключающийся в том, что у пользователя нет возможности переключаться на другое приложение или виртуальный рабочий стол с помощью клавиатуры, когда клавиатура захватывается. Я хотел бы иметь пользовательский белый список сочетаний клавиш (скажем, сочетаний клавиш для переключения виртуальных рабочих столов), которые исключены из захвата.
Я могу думать о двух возможных подходах. При получении ключевого события из белого списка либо
Каким-то образом скажите X, чтобы она продолжала обрабатываться как обычно Это звучит как более естественный способ сделать это, но я не могу найти способ сделать это, илиОтключите клавиатуру и повторно отправьте событие вручную диспетчеру окон для обработки, однако я не знаю, куда его отправить (корневое окно?) Или это будет работать.Кто-нибудь может заполнить пробелы в тех? Любые другие предложения?
Если нет способа исключить клавиши из захвата, я думаю, мне придется довольствоваться наличием «клавиши выхода», которая при нажатии нажимает на клавиатуру. Пользователь должен будет нажать и то, и другое, затем команду менеджера окон, что не так приятно.