Spec-Zone.ru › Elisp

События фокуса

В этом разделе рассматриваются как оконные системы, так и кадры Emacs. Когда речь идет просто о «кадрах» или «окнах», имеются в виду кадры Emacs и окна Emacs. Когда речь идет об окнах оконной системы, которые также являются кадрами Emacs, в этом разделе всегда используется выражение «окно оконной системы».

Оконные системы предоставляют пользователю общие способы управления тем, какое окно оконной системы, или кадр Emacs, получает ввод с клавиатуры. Это окно оконной системы называется фокусом. Когда пользователь переключается между кадрами Emacs, генерируется событие фокуса. Emacs также генерирует события фокуса при переключении между окнами Emacs внутри кадров Emacs с помощью mouse-autoselect-window.

Событие фокуса в середине последовательности клавиш исказило бы эту последовательность. Поэтому Emacs никогда не генерирует событие фокуса в середине последовательности клавиш. Если пользователь меняет фокус в середине последовательности клавиш — то есть после префиксной клавиши, — Emacs переупорядочивает события так, чтобы событие фокуса происходило до или после последовательности клавиш, состоящей из нескольких событий, но не внутри нее.

События фокуса для кадров

Обычное назначение события фокуса, переключающего кадры, в глобальной карте клавиш — выбрать этот новый кадр в Emacs, как и ожидает пользователь. См. Фокус ввода, где также описаны хуки, связанные с событиями фокуса для кадров. В Lisp события фокуса для кадров представлены списками следующего вида:

(switch-frame new-frame)

где new-frame — кадр, на который переключились.

Некоторые оконные менеджеры X настроены так, что для установки фокуса достаточно просто переместить мышь в кадр. Обычно программе на Lisp не нужно знать о смене фокуса, пока не поступит ввод другого типа. Emacs генерирует событие фокуса, только когда пользователь действительно нажимает клавишу клавиатуры или кнопку мыши в новом кадре; простое перемещение мыши между кадрами не генерирует событие фокуса.

События фокуса для окон

Если задано значение mouse-autoselect-window, перемещение мыши над новым окном внутри кадра также может привести к переключению выбранного окна. См. Автоматический выбор окна мышью, где описано поведение для различных значений. При перемещении мыши над новым окном генерируется событие фокуса для переключения окон. В Lisp события фокуса для окон представлены списками следующего вида:

(select-window new-window)

где new-window — окно, на которое переключились.

Copyright © 1990-1996, 1998-2026 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Focus-Events.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API