Господа, все мы, кто недавно рассуждал о невозможности обработки глобальных хоткеев в то время, когда открыто вплывающее меню, — у меня для нас пренеприятнейшее известие. Мы все — идиоты. Увы, но это правда.
Два факта:
- В приложениях, написанных на Fox toolkit, всплывающие меню не захватывают клавиатуру и не блокируют работу хоткеев. При этом переключение на другое приложение оставляет меню открытым, но не реагирующим на клавиатуру. При возврате в окно приложения, открывшего меню, меню снова начинает реагировать на клавиатуру.
- В Firefox (который, вроде бы, юзает gtk, не?) меню также не блокирует глобальные хоткеи. Видимое отличие от Fox toolkit тут в том, что при потере окном файрфокса фокуса, меню исчезает.
Итак. Если мы подумаем, то поймём простую вещь: если меню открывает то приложение, которое имеет в этот момент фокус ввода, то захват клавиатуры не обязателен. Тулкит в этом случае сам может перенаправлять сообщения из сфокусированного окна окну меню.
Ну что, есть желающие написать патч для gtk? :D