|
grab параметр ?арг арг ...?
С помощью команды grab можно запустить или прекратить перехват для указанного окна и получить сведения об установленном для указанного окна перехватчике.
Есть два типа перехватчиков: локальные и глобальные. Локальный перехватчик влияет только на перехватывающее приложение, остальные приложения ведут себя таким образом, как если бы никакого перехвата не было. По умолчанию перехватчики локальные. Глобальный перехватчик блокирует все приложения на экране; чувствительность к событиям указателя (нажатия и отпускания клавиши "Мыши", движения указателя, входы в окно и выходы из него) сохраняют только окна поддерева модального окна. При действии глобального перехватчика менеджер окон также нечувствителен к событиям указателя.
При действии локальных перехватчиков события клавиатуры (нажатие и отпускание клавиш) передаются обычным образом: менеджер окон следит за тем, какое из приложений получает событие клавиатуры, и всякое такое событие, относящееся к перехватывающему приложению, перенаправляется в окно в фокусе. При действии глобального перехватчика Tk перенаправляет все события клавиатуры в перехватывающее приложение. Какое окно приложения получает событие клавиатуры, по-прежнему определяется командой focus. Перехват событий клавиатуры отменяется при прекращении действия перехватчика.
Перехватчики применяются к конкретным дисплеям. Если у приложения есть окна на различных дисплеях, то оно может запустить отдельный перехватчик на каждом дисплее. Перехватчик на конкретном дисплее воздействует только на окно на этом дисплее. Несколько приложений могут запустить на одном дисплее локальные перехватчики, но глобальный перехватчик на дисплее может быть только один.
Команда grab может иметь одну из следующих форм:
grab ?-global? окно
grab current ? window?
Если несколько приложений Tk управляются
одним процессом, то на данном дисплее только одно из этих приложений может
иметь локального перехватчика в каждый конкретный момент. Этого ограничения
нет для приложений, управляемых различными процессами.