LINUX.ORG.RU

Правильно обрабатывать глобальный хоткей в иксах. Как?

 ,


1

2

Привет!
Сейчас есть скрипт:

https://paste.kde.org/ph4v22eud

Он простой, наколенный и пруф-оф-концепт.
В нем есть баг: нажатие хоткея (в данном случае meta+space) передается дальше в WM. Я, к сожалению, недостаточно знаю (как вообще, так и об Иксах), чтобы правильно даже назвать данную проблему. Собственно, вопрос:

- Мне приходит ивент - нажата клавиша. Как правильно отметить данный ивент как обработанный, дабы клиент, имеющий фокус, не пытался его так же обработать?

Если это проще сделать с помощью любого фреймворка (будь то гтк, кутэ или что угодно еще - ничего не знаю, предпочтений нет) - пожалуйста, подскажите.

Спасибо.

★★★★★

Я, к сожалению, недостаточно знаю (как вообще, так и об Иксах), чтобы правильно даже назвать данную проблему.

не переживай, те двое, кто это знает, скоро вымрут.

t184256 ★★★★★
()
Ответ на: комментарий от t184256

Я, к сожалению, недостаточно знаю (как вообще, так и об Иксах), чтобы правильно даже назвать данную проблему.

не переживай, те двое, кто это знает, скоро вымрут.

cast Zubok

Stil ★★★★★
()

Я, к сожалению, недостаточно знаю (как вообще, так и об Иксах), чтобы правильно даже назвать данную проблему.

Обычно это называется event propagation. В грубой интерпретации, все кто подписался на ивент - последовательно (по иерархии) получают его. Но если кто-то из подписантов выставил флаг «прекратить оповещение» - распространение ивента остановится на нем и дальше его никто не получит. Маленькая проблемка в твоем случае - WM скорее всего получит его первым.

Из доков

Starting with the source window, the X server searches up the window hierarchy until it locates the first window specified by a client as having an interest in these events. If one of the intervening windows has its do-not-propagate-mask set to prohibit generation of the event type, the events of those types will be suppressed.

ioway
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.