22.7.6 События нажатия кнопки

События клика и перетаскивания происходят, когда пользователь отпускает кнопку мыши. Они не могут произойти раньше, потому что невозможно отличить клик от перетаскивания до тех пор, пока кнопка не будет отпущена.

Если вы хотите выполнить действие сразу после нажатия кнопки, вам необходимо обрабатывать события button-down.18 Эти события происходят сразу после нажатия кнопки. Они представлены списками, которые выглядят точно так же, как события клика (см. События клика), за исключением того, что имя символа event-type содержит префикс ‘down-’. Префикс ‘down-’ следует за префиксами клавиш-модификаторов, такими как ‘C-’ и ‘M-’.

Функция read-key-sequence игнорирует любые события нажатия кнопки, которые не имеют привязок команд; следовательно, цикл команд Emacs также их игнорирует. Это означает, что вам не нужно беспокоиться о определении событий нажатия кнопки, если только вы не хотите, чтобы они что-то делали. Обычно причина определения события нажатия кнопки заключается в том, чтобы вы могли отслеживать движение мыши (чтение событий движения) до тех пор, пока кнопка не будет отпущена. См. События движения.


Примечания

(18)

Нажатие кнопки — это консервативный антитезис перетаскиванию.