22.7.5 拖拽事件

在 Emacs 中,你无需改变任何操作就能产生拖拽事件。 每当用户按下鼠标按键,并在释放按键前将鼠标移动到不同的字符位置时, 就会产生一个 拖拽事件(drag event)。与所有鼠标事件一样,拖拽事件在 Lisp 中以列表表示。 这些列表会同时记录鼠标的起始位置和结束位置,格式如下:

(event-type start-position end-position)

对于拖拽事件,符号 event-type 的名称包含前缀 ‘drag-’。 例如,按住鼠标按键 2 并拖动鼠标会产生 drag-mouse-2 事件。 事件的第二个和第三个元素,即上例中的 start-positionend-position, 会被设置为拖拽的起始和结束位置(以鼠标位置列表的形式,see 点击事件)。 你可以用同样的方式访问任何鼠标事件的第二个元素。 但是,拖拽事件可能在最初选中的框架边界之外结束。 在这种情况下,第三个元素的位置列表会使用该框架代替窗口。

drag-’ 前缀位于修饰键前缀(如 ‘C-’ 和 ‘M-’)之后。

如果 read-key-sequence 接收到一个没有按键绑定的拖拽事件, 而对应的点击事件存在绑定,它会将该拖拽事件转换为拖拽起始位置处的点击事件。 这意味着除非你需要,否则不必区分点击事件和拖拽事件。

emacs

Emacs

org-mode

Orgmode

Donations

打赏

Copyright

© Jasper Hsu

Creative Commons

Creative Commons

Attribute

Attribute

Noncommercial

Noncommercial

Share Alike

Share Alike