Mercurial > emacs
annotate lisp/xt-mouse.el @ 107777:13c077500eb3
2010-04-04 John Wiegley <jwiegley@gmail.com>
* ido.el (ido-use-virtual-buffers): New variable to indicate
whether "virtual buffer" support is enabled for IDO. Essentially
it works as follows: Say you are visiting a file and the buffer
gets cleaned up by mignight.el. Later, you want to switch to that
buffer, but find it's no longer open. With virtual buffers
enabled, the buffer name stays in the buffer list (using the
ido-virtual face, and always at the end), and if you select it, it
opens the file back up again. This allows you to think less about
whether recently opened files are still open or not. Most of the
time you can quit Emacs, restart, and then switch to a file buffer
that was previously open as if it still were. NOTE: This feature
has been present in iswitchb for several years now, and I'm
porting the same logic to IDO.
(ido-virtual): Face used to indicate virtual buffers in the list.
(ido-buffer-internal): If a buffer is chosen, and no such buffer
exists, but a virtual buffer of that name does (which would be why
it was in the list), recreate the buffer by reopening the file.
(ido-make-buffer-list): If virtual buffers are being used, call
`ido-add-virtual-buffers-to-list' before the make list hook.
(ido-virtual-buffers): New variable which contains a copy of the
current contents of the `recentf-list', albeit pared down for the
sake of speed, and with proper faces applied.
(ido-add-virtual-buffers-to-list): Using the `recentf-list',
create a list of "virtual buffers" to present to the user in
addition to the currently open set. Note that this logic could
get rather slow if that list is too large. With the default
`recentf-max-saved-items' of 200, there is little speed penalty.
author | jwiegley@gmail.com |
---|---|
date | Sun, 04 Apr 2010 02:55:19 -0400 |
parents | 1d1d5d9bd884 |
children | a6e068e858a4 |
rev | line source |
---|---|
38436
b174db545cfd
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
38178
diff
changeset
|
1 ;;; xt-mouse.el --- support the mouse when emacs run in an xterm |
14169 | 2 |
64762
41bb365f41c4
Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
64091
diff
changeset
|
3 ;; Copyright (C) 1994, 2000, 2001, 2002, 2003, |
106815 | 4 ;; 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. |
13163 | 5 |
17982 | 6 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk> |
13163 | 7 ;; Keywords: mouse, terminals |
8 | |
14169 | 9 ;; This file is part of GNU Emacs. |
10 | |
94678
ee5932bf781d
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
93371
diff
changeset
|
11 ;; GNU Emacs is free software: you can redistribute it and/or modify |
13163 | 12 ;; it under the terms of the GNU General Public License as published by |
94678
ee5932bf781d
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
93371
diff
changeset
|
13 ;; the Free Software Foundation, either version 3 of the License, or |
ee5932bf781d
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
93371
diff
changeset
|
14 ;; (at your option) any later version. |
14169 | 15 |
16 ;; GNU Emacs is distributed in the hope that it will be useful, | |
13163 | 17 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
19 ;; GNU General Public License for more details. | |
14169 | 20 |
13163 | 21 ;; You should have received a copy of the GNU General Public License |
94678
ee5932bf781d
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
93371
diff
changeset
|
22 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. |
13163 | 23 |
27803 | 24 ;;; Commentary: |
13163 | 25 |
59594
7ce4342aac7f
(xterm-mouse-event): Set new optional fourth arg in
Nick Roberts <nickrob@snap.net.nz>
parents:
59531
diff
changeset
|
26 ;; Enable mouse support when running inside an xterm. |
13163 | 27 |
28 ;; This is actually useful when you are running X11 locally, but is | |
29 ;; working on remote machine over a modem line or through a gateway. | |
30 | |
31 ;; It works by translating xterm escape codes into generic emacs mouse | |
32 ;; events so it should work with any package that uses the mouse. | |
33 | |
14750 | 34 ;; You don't have to turn off xterm mode to use the normal xterm mouse |
35 ;; functionality, it is still available by holding down the SHIFT key | |
36 ;; when you press the mouse button. | |
37 | |
13163 | 38 ;;; Todo: |
39 | |
40 ;; Support multi-click -- somehow. | |
41 | |
27803 | 42 ;;; Code: |
13163 | 43 |
80899
955868b1755c
(xterm-mouse-debug-buffer): New variable.
Nick Roberts <nickrob@snap.net.nz>
parents:
76924
diff
changeset
|
44 (defvar xterm-mouse-debug-buffer nil) |
13163 | 45 |
13920
3a5b5eeba5b5
(xterm-mouse-translate, xterm-mouse-event):
Richard M. Stallman <rms@gnu.org>
parents:
13500
diff
changeset
|
46 (defvar xterm-mouse-last) |
3a5b5eeba5b5
(xterm-mouse-translate, xterm-mouse-event):
Richard M. Stallman <rms@gnu.org>
parents:
13500
diff
changeset
|
47 |
59497
255a31569c3f
(xterm-mouse-translate, xterm-mouse-event): Enable
Nick Roberts <nickrob@snap.net.nz>
parents:
58875
diff
changeset
|
48 ;; Mouse events symbols must have an 'event-kind property with |
255a31569c3f
(xterm-mouse-translate, xterm-mouse-event): Enable
Nick Roberts <nickrob@snap.net.nz>
parents:
58875
diff
changeset
|
49 ;; the value 'mouse-click. |
76924
44b6d7a1ef55
(xterm-mouse-event): Don't use the left edge of the
Nick Roberts <nickrob@snap.net.nz>
parents:
76660
diff
changeset
|
50 (dolist (event-type '(mouse-1 mouse-2 mouse-3 |
44b6d7a1ef55
(xterm-mouse-event): Don't use the left edge of the
Nick Roberts <nickrob@snap.net.nz>
parents:
76660
diff
changeset
|
51 M-down-mouse-1 M-down-mouse-2 M-down-mouse-3)) |
59497
255a31569c3f
(xterm-mouse-translate, xterm-mouse-event): Enable
Nick Roberts <nickrob@snap.net.nz>
parents:
58875
diff
changeset
|
52 (put event-type 'event-kind 'mouse-click)) |
255a31569c3f
(xterm-mouse-translate, xterm-mouse-event): Enable
Nick Roberts <nickrob@snap.net.nz>
parents:
58875
diff
changeset
|
53 |
13163 | 54 (defun xterm-mouse-translate (event) |
27803 | 55 "Read a click and release event from XTerm." |
13163 | 56 (save-excursion |
57 (save-window-excursion | |
58 (deactivate-mark) | |
13920
3a5b5eeba5b5
(xterm-mouse-translate, xterm-mouse-event):
Richard M. Stallman <rms@gnu.org>
parents:
13500
diff
changeset
|
59 (let* ((xterm-mouse-last) |
13500
5de4c8a3f702
(global-map): Removed bindings of down events to ignore.
Richard M. Stallman <rms@gnu.org>
parents:
13163
diff
changeset
|
60 (down (xterm-mouse-event)) |
5de4c8a3f702
(global-map): Removed bindings of down events to ignore.
Richard M. Stallman <rms@gnu.org>
parents:
13163
diff
changeset
|
61 (down-command (nth 0 down)) |
5de4c8a3f702
(global-map): Removed bindings of down events to ignore.
Richard M. Stallman <rms@gnu.org>
parents:
13163
diff
changeset
|
62 (down-data (nth 1 down)) |
5de4c8a3f702
(global-map): Removed bindings of down events to ignore.
Richard M. Stallman <rms@gnu.org>
parents:
13163
diff
changeset
|
63 (down-where (nth 1 down-data)) |
5de4c8a3f702
(global-map): Removed bindings of down events to ignore.
Richard M. Stallman <rms@gnu.org>
parents:
13163
diff
changeset
|
64 (down-binding (key-binding (if (symbolp down-where) |
5de4c8a3f702
(global-map): Removed bindings of down events to ignore.
Richard M. Stallman <rms@gnu.org>
parents:
13163
diff
changeset
|
65 (vector down-where down-command) |
38563
75f49513b989
(xterm-mouse-event): Recognize control sequences
Gerd Moellmann <gerd@gnu.org>
parents:
38436
diff
changeset
|
66 (vector down-command)))) |
75f49513b989
(xterm-mouse-event): Recognize control sequences
Gerd Moellmann <gerd@gnu.org>
parents:
38436
diff
changeset
|
67 (is-click (string-match "^mouse" (symbol-name (car down))))) |
49597
e88404e8f2cf
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46836
diff
changeset
|
68 |
38563
75f49513b989
(xterm-mouse-event): Recognize control sequences
Gerd Moellmann <gerd@gnu.org>
parents:
38436
diff
changeset
|
69 (unless is-click |
75f49513b989
(xterm-mouse-event): Recognize control sequences
Gerd Moellmann <gerd@gnu.org>
parents:
38436
diff
changeset
|
70 (unless (and (eq (read-char) ?\e) |
75f49513b989
(xterm-mouse-event): Recognize control sequences
Gerd Moellmann <gerd@gnu.org>
parents:
38436
diff
changeset
|
71 (eq (read-char) ?\[) |
75f49513b989
(xterm-mouse-event): Recognize control sequences
Gerd Moellmann <gerd@gnu.org>
parents:
38436
diff
changeset
|
72 (eq (read-char) ?M)) |
75f49513b989
(xterm-mouse-event): Recognize control sequences
Gerd Moellmann <gerd@gnu.org>
parents:
38436
diff
changeset
|
73 (error "Unexpected escape sequence from XTerm"))) |
75f49513b989
(xterm-mouse-event): Recognize control sequences
Gerd Moellmann <gerd@gnu.org>
parents:
38436
diff
changeset
|
74 |
75f49513b989
(xterm-mouse-event): Recognize control sequences
Gerd Moellmann <gerd@gnu.org>
parents:
38436
diff
changeset
|
75 (let* ((click (if is-click down (xterm-mouse-event))) |
85416
58c70d072b21
Don't change the global function-key-map anny more.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84769
diff
changeset
|
76 ;; (click-command (nth 0 click)) |
13500
5de4c8a3f702
(global-map): Removed bindings of down events to ignore.
Richard M. Stallman <rms@gnu.org>
parents:
13163
diff
changeset
|
77 (click-data (nth 1 click)) |
5de4c8a3f702
(global-map): Removed bindings of down events to ignore.
Richard M. Stallman <rms@gnu.org>
parents:
13163
diff
changeset
|
78 (click-where (nth 1 click-data))) |
5de4c8a3f702
(global-map): Removed bindings of down events to ignore.
Richard M. Stallman <rms@gnu.org>
parents:
13163
diff
changeset
|
79 (if (memq down-binding '(nil ignore)) |
5de4c8a3f702
(global-map): Removed bindings of down events to ignore.
Richard M. Stallman <rms@gnu.org>
parents:
13163
diff
changeset
|
80 (if (and (symbolp click-where) |
59497
255a31569c3f
(xterm-mouse-translate, xterm-mouse-event): Enable
Nick Roberts <nickrob@snap.net.nz>
parents:
58875
diff
changeset
|
81 (consp click-where)) |
13500
5de4c8a3f702
(global-map): Removed bindings of down events to ignore.
Richard M. Stallman <rms@gnu.org>
parents:
13163
diff
changeset
|
82 (vector (list click-where click-data) click) |
5de4c8a3f702
(global-map): Removed bindings of down events to ignore.
Richard M. Stallman <rms@gnu.org>
parents:
13163
diff
changeset
|
83 (vector click)) |
5de4c8a3f702
(global-map): Removed bindings of down events to ignore.
Richard M. Stallman <rms@gnu.org>
parents:
13163
diff
changeset
|
84 (setq unread-command-events |
5de4c8a3f702
(global-map): Removed bindings of down events to ignore.
Richard M. Stallman <rms@gnu.org>
parents:
13163
diff
changeset
|
85 (if (eq down-where click-where) |
5de4c8a3f702
(global-map): Removed bindings of down events to ignore.
Richard M. Stallman <rms@gnu.org>
parents:
13163
diff
changeset
|
86 (list click) |
5de4c8a3f702
(global-map): Removed bindings of down events to ignore.
Richard M. Stallman <rms@gnu.org>
parents:
13163
diff
changeset
|
87 (list |
5de4c8a3f702
(global-map): Removed bindings of down events to ignore.
Richard M. Stallman <rms@gnu.org>
parents:
13163
diff
changeset
|
88 ;; Cheat `mouse-drag-region' with move event. |
5de4c8a3f702
(global-map): Removed bindings of down events to ignore.
Richard M. Stallman <rms@gnu.org>
parents:
13163
diff
changeset
|
89 (list 'mouse-movement click-data) |
5de4c8a3f702
(global-map): Removed bindings of down events to ignore.
Richard M. Stallman <rms@gnu.org>
parents:
13163
diff
changeset
|
90 ;; Generate a drag event. |
5de4c8a3f702
(global-map): Removed bindings of down events to ignore.
Richard M. Stallman <rms@gnu.org>
parents:
13163
diff
changeset
|
91 (if (symbolp down-where) |
5de4c8a3f702
(global-map): Removed bindings of down events to ignore.
Richard M. Stallman <rms@gnu.org>
parents:
13163
diff
changeset
|
92 0 |
27803 | 93 (list (intern (format "drag-mouse-%d" |
94 (+ 1 xterm-mouse-last))) | |
59497
255a31569c3f
(xterm-mouse-translate, xterm-mouse-event): Enable
Nick Roberts <nickrob@snap.net.nz>
parents:
58875
diff
changeset
|
95 down-data click-data))))) |
80899
955868b1755c
(xterm-mouse-debug-buffer): New variable.
Nick Roberts <nickrob@snap.net.nz>
parents:
76924
diff
changeset
|
96 (if xterm-mouse-debug-buffer |
955868b1755c
(xterm-mouse-debug-buffer): New variable.
Nick Roberts <nickrob@snap.net.nz>
parents:
76924
diff
changeset
|
97 (print unread-command-events xterm-mouse-debug-buffer)) |
13500
5de4c8a3f702
(global-map): Removed bindings of down events to ignore.
Richard M. Stallman <rms@gnu.org>
parents:
13163
diff
changeset
|
98 (if (and (symbolp down-where) |
59497
255a31569c3f
(xterm-mouse-translate, xterm-mouse-event): Enable
Nick Roberts <nickrob@snap.net.nz>
parents:
58875
diff
changeset
|
99 (consp down-where)) |
13500
5de4c8a3f702
(global-map): Removed bindings of down events to ignore.
Richard M. Stallman <rms@gnu.org>
parents:
13163
diff
changeset
|
100 (vector (list down-where down-data) down) |
5de4c8a3f702
(global-map): Removed bindings of down events to ignore.
Richard M. Stallman <rms@gnu.org>
parents:
13163
diff
changeset
|
101 (vector down)))))))) |
5de4c8a3f702
(global-map): Removed bindings of down events to ignore.
Richard M. Stallman <rms@gnu.org>
parents:
13163
diff
changeset
|
102 |
83369
d2e0850b17f2
Make xt-mouse.el multi-tty-compatible.
Karoly Lorentey <lorentey@elte.hu>
parents:
83353
diff
changeset
|
103 ;; These two variables have been converted to terminal parameters. |
d2e0850b17f2
Make xt-mouse.el multi-tty-compatible.
Karoly Lorentey <lorentey@elte.hu>
parents:
83353
diff
changeset
|
104 ;; |
d2e0850b17f2
Make xt-mouse.el multi-tty-compatible.
Karoly Lorentey <lorentey@elte.hu>
parents:
83353
diff
changeset
|
105 ;;(defvar xterm-mouse-x 0 |
d2e0850b17f2
Make xt-mouse.el multi-tty-compatible.
Karoly Lorentey <lorentey@elte.hu>
parents:
83353
diff
changeset
|
106 ;; "Position of last xterm mouse event relative to the frame.") |
d2e0850b17f2
Make xt-mouse.el multi-tty-compatible.
Karoly Lorentey <lorentey@elte.hu>
parents:
83353
diff
changeset
|
107 ;; |
d2e0850b17f2
Make xt-mouse.el multi-tty-compatible.
Karoly Lorentey <lorentey@elte.hu>
parents:
83353
diff
changeset
|
108 ;;(defvar xterm-mouse-y 0 |
d2e0850b17f2
Make xt-mouse.el multi-tty-compatible.
Karoly Lorentey <lorentey@elte.hu>
parents:
83353
diff
changeset
|
109 ;; "Position of last xterm mouse event relative to the frame.") |
13500
5de4c8a3f702
(global-map): Removed bindings of down events to ignore.
Richard M. Stallman <rms@gnu.org>
parents:
13163
diff
changeset
|
110 |
76658
384739d4e5e7
(xt-mouse-epoch): New variable.
Nick Roberts <nickrob@snap.net.nz>
parents:
76657
diff
changeset
|
111 (defvar xt-mouse-epoch nil) |
384739d4e5e7
(xt-mouse-epoch): New variable.
Nick Roberts <nickrob@snap.net.nz>
parents:
76657
diff
changeset
|
112 |
23823
d60ff4432412
(xterm-mouse-mode): Pacify the byte compiler.
Markus Rost <rost@math.uni-bielefeld.de>
parents:
21270
diff
changeset
|
113 ;; Indicator for the xterm-mouse mode. |
d60ff4432412
(xterm-mouse-mode): Pacify the byte compiler.
Markus Rost <rost@math.uni-bielefeld.de>
parents:
21270
diff
changeset
|
114 |
27803 | 115 (defun xterm-mouse-position-function (pos) |
116 "Bound to `mouse-position-function' in XTerm mouse mode." | |
83369
d2e0850b17f2
Make xt-mouse.el multi-tty-compatible.
Karoly Lorentey <lorentey@elte.hu>
parents:
83353
diff
changeset
|
117 (when (terminal-parameter nil 'xterm-mouse-x) |
d2e0850b17f2
Make xt-mouse.el multi-tty-compatible.
Karoly Lorentey <lorentey@elte.hu>
parents:
83353
diff
changeset
|
118 (setcdr pos (cons (terminal-parameter nil 'xterm-mouse-x) |
d2e0850b17f2
Make xt-mouse.el multi-tty-compatible.
Karoly Lorentey <lorentey@elte.hu>
parents:
83353
diff
changeset
|
119 (terminal-parameter nil 'xterm-mouse-y)))) |
27803 | 120 pos) |
13163 | 121 |
50478
4c84e707a287
(xterm-mouse-event-read): New function.
Francesco Potortì <pot@gnu.org>
parents:
49597
diff
changeset
|
122 ;; read xterm sequences above ascii 127 (#x7f) |
4c84e707a287
(xterm-mouse-event-read): New function.
Francesco Potortì <pot@gnu.org>
parents:
49597
diff
changeset
|
123 (defun xterm-mouse-event-read () |
4c84e707a287
(xterm-mouse-event-read): New function.
Francesco Potortì <pot@gnu.org>
parents:
49597
diff
changeset
|
124 (let ((c (read-char))) |
4c84e707a287
(xterm-mouse-event-read): New function.
Francesco Potortì <pot@gnu.org>
parents:
49597
diff
changeset
|
125 (if (< c 0) |
4c84e707a287
(xterm-mouse-event-read): New function.
Francesco Potortì <pot@gnu.org>
parents:
49597
diff
changeset
|
126 (+ c #x8000000 128) |
4c84e707a287
(xterm-mouse-event-read): New function.
Francesco Potortì <pot@gnu.org>
parents:
49597
diff
changeset
|
127 c))) |
4c84e707a287
(xterm-mouse-event-read): New function.
Francesco Potortì <pot@gnu.org>
parents:
49597
diff
changeset
|
128 |
77809
20f40276359e
(xterm-mouse-truncate-wrap): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
76924
diff
changeset
|
129 (defun xterm-mouse-truncate-wrap (f) |
20f40276359e
(xterm-mouse-truncate-wrap): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
76924
diff
changeset
|
130 "Truncate with wrap-around." |
20f40276359e
(xterm-mouse-truncate-wrap): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
76924
diff
changeset
|
131 (condition-case nil |
20f40276359e
(xterm-mouse-truncate-wrap): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
76924
diff
changeset
|
132 ;; First try the built-in truncate, in case there's no overflow. |
20f40276359e
(xterm-mouse-truncate-wrap): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
76924
diff
changeset
|
133 (truncate f) |
20f40276359e
(xterm-mouse-truncate-wrap): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
76924
diff
changeset
|
134 ;; In case of overflow, do wraparound by hand. |
20f40276359e
(xterm-mouse-truncate-wrap): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
76924
diff
changeset
|
135 (range-error |
20f40276359e
(xterm-mouse-truncate-wrap): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
76924
diff
changeset
|
136 ;; In our case, we wrap around every 3 days or so, so if we assume |
20f40276359e
(xterm-mouse-truncate-wrap): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
76924
diff
changeset
|
137 ;; a maximum of 65536 wraparounds, we're safe for a couple years. |
20f40276359e
(xterm-mouse-truncate-wrap): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
76924
diff
changeset
|
138 ;; Using a power of 2 makes rounding errors less likely. |
20f40276359e
(xterm-mouse-truncate-wrap): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
76924
diff
changeset
|
139 (let* ((maxwrap (* 65536 2048)) |
20f40276359e
(xterm-mouse-truncate-wrap): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
76924
diff
changeset
|
140 (dbig (truncate (/ f maxwrap))) |
20f40276359e
(xterm-mouse-truncate-wrap): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
76924
diff
changeset
|
141 (fdiff (- f (* 1.0 maxwrap dbig)))) |
20f40276359e
(xterm-mouse-truncate-wrap): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
76924
diff
changeset
|
142 (+ (truncate fdiff) (* maxwrap dbig)))))) |
20f40276359e
(xterm-mouse-truncate-wrap): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
76924
diff
changeset
|
143 |
13163 | 144 (defun xterm-mouse-event () |
27803 | 145 "Convert XTerm mouse event to Emacs mouse event." |
50478
4c84e707a287
(xterm-mouse-event-read): New function.
Francesco Potortì <pot@gnu.org>
parents:
49597
diff
changeset
|
146 (let* ((type (- (xterm-mouse-event-read) #o40)) |
4c84e707a287
(xterm-mouse-event-read): New function.
Francesco Potortì <pot@gnu.org>
parents:
49597
diff
changeset
|
147 (x (- (xterm-mouse-event-read) #o40 1)) |
4c84e707a287
(xterm-mouse-event-read): New function.
Francesco Potortì <pot@gnu.org>
parents:
49597
diff
changeset
|
148 (y (- (xterm-mouse-event-read) #o40 1)) |
76659
750eeee3d77a
*** empty log message ***
Nick Roberts <nickrob@snap.net.nz>
parents:
76658
diff
changeset
|
149 ;; Emulate timestamp information. This is accurate enough |
750eeee3d77a
*** empty log message ***
Nick Roberts <nickrob@snap.net.nz>
parents:
76658
diff
changeset
|
150 ;; for default value of mouse-1-click-follows-link (450msec). |
77809
20f40276359e
(xterm-mouse-truncate-wrap): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
76924
diff
changeset
|
151 (timestamp (xterm-mouse-truncate-wrap |
81072
ecb305fe2f17
(xterm-mouse-truncate-wrap): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
80899
diff
changeset
|
152 (* 1000 |
ecb305fe2f17
(xterm-mouse-truncate-wrap): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
80899
diff
changeset
|
153 (- (float-time) |
ecb305fe2f17
(xterm-mouse-truncate-wrap): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
80899
diff
changeset
|
154 (or xt-mouse-epoch |
ecb305fe2f17
(xterm-mouse-truncate-wrap): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
80899
diff
changeset
|
155 (setq xt-mouse-epoch (float-time))))))) |
ecb305fe2f17
(xterm-mouse-truncate-wrap): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
80899
diff
changeset
|
156 (mouse (intern |
38563
75f49513b989
(xterm-mouse-event): Recognize control sequences
Gerd Moellmann <gerd@gnu.org>
parents:
38436
diff
changeset
|
157 ;; For buttons > 3, the release-event looks |
75f49513b989
(xterm-mouse-event): Recognize control sequences
Gerd Moellmann <gerd@gnu.org>
parents:
38436
diff
changeset
|
158 ;; differently (see xc/programs/xterm/button.c, |
75f49513b989
(xterm-mouse-event): Recognize control sequences
Gerd Moellmann <gerd@gnu.org>
parents:
38436
diff
changeset
|
159 ;; function EditorButton), and there seems to come in |
75f49513b989
(xterm-mouse-event): Recognize control sequences
Gerd Moellmann <gerd@gnu.org>
parents:
38436
diff
changeset
|
160 ;; a release-event only, no down-event. |
75f49513b989
(xterm-mouse-event): Recognize control sequences
Gerd Moellmann <gerd@gnu.org>
parents:
38436
diff
changeset
|
161 (cond ((>= type 64) |
75f49513b989
(xterm-mouse-event): Recognize control sequences
Gerd Moellmann <gerd@gnu.org>
parents:
38436
diff
changeset
|
162 (format "mouse-%d" (- type 60))) |
76924
44b6d7a1ef55
(xterm-mouse-event): Don't use the left edge of the
Nick Roberts <nickrob@snap.net.nz>
parents:
76660
diff
changeset
|
163 ((memq type '(8 9 10)) |
44b6d7a1ef55
(xterm-mouse-event): Don't use the left edge of the
Nick Roberts <nickrob@snap.net.nz>
parents:
76660
diff
changeset
|
164 (setq xterm-mouse-last type) |
44b6d7a1ef55
(xterm-mouse-event): Don't use the left edge of the
Nick Roberts <nickrob@snap.net.nz>
parents:
76660
diff
changeset
|
165 (format "M-down-mouse-%d" (- type 7))) |
44b6d7a1ef55
(xterm-mouse-event): Don't use the left edge of the
Nick Roberts <nickrob@snap.net.nz>
parents:
76660
diff
changeset
|
166 ((= type 11) |
44b6d7a1ef55
(xterm-mouse-event): Don't use the left edge of the
Nick Roberts <nickrob@snap.net.nz>
parents:
76660
diff
changeset
|
167 (format "mouse-%d" (- xterm-mouse-last 7))) |
38563
75f49513b989
(xterm-mouse-event): Recognize control sequences
Gerd Moellmann <gerd@gnu.org>
parents:
38436
diff
changeset
|
168 ((= type 3) |
93177
470ea273abbf
(xterm-mouse-event): Avoid error with buttons > 5.
Andreas Schwab <schwab@suse.de>
parents:
87649
diff
changeset
|
169 ;; For buttons > 5 xterm only reports a |
470ea273abbf
(xterm-mouse-event): Avoid error with buttons > 5.
Andreas Schwab <schwab@suse.de>
parents:
87649
diff
changeset
|
170 ;; button-release event. Avoid error by mapping |
470ea273abbf
(xterm-mouse-event): Avoid error with buttons > 5.
Andreas Schwab <schwab@suse.de>
parents:
87649
diff
changeset
|
171 ;; them all to mouse-1. |
470ea273abbf
(xterm-mouse-event): Avoid error with buttons > 5.
Andreas Schwab <schwab@suse.de>
parents:
87649
diff
changeset
|
172 (format "mouse-%d" (+ 1 (or xterm-mouse-last 0)))) |
38563
75f49513b989
(xterm-mouse-event): Recognize control sequences
Gerd Moellmann <gerd@gnu.org>
parents:
38436
diff
changeset
|
173 (t |
75f49513b989
(xterm-mouse-event): Recognize control sequences
Gerd Moellmann <gerd@gnu.org>
parents:
38436
diff
changeset
|
174 (setq xterm-mouse-last type) |
59497
255a31569c3f
(xterm-mouse-translate, xterm-mouse-event): Enable
Nick Roberts <nickrob@snap.net.nz>
parents:
58875
diff
changeset
|
175 (format "down-mouse-%d" (+ 1 type)))))) |
59531
0b4694a3c513
(xterm-mouse-event): Compute window co-ordinates
Nick Roberts <nickrob@snap.net.nz>
parents:
59497
diff
changeset
|
176 (w (window-at x y)) |
0b4694a3c513
(xterm-mouse-event): Compute window co-ordinates
Nick Roberts <nickrob@snap.net.nz>
parents:
59497
diff
changeset
|
177 (ltrb (window-edges w)) |
0b4694a3c513
(xterm-mouse-event): Compute window co-ordinates
Nick Roberts <nickrob@snap.net.nz>
parents:
59497
diff
changeset
|
178 (left (nth 0 ltrb)) |
0b4694a3c513
(xterm-mouse-event): Compute window co-ordinates
Nick Roberts <nickrob@snap.net.nz>
parents:
59497
diff
changeset
|
179 (top (nth 1 ltrb))) |
0b4694a3c513
(xterm-mouse-event): Compute window co-ordinates
Nick Roberts <nickrob@snap.net.nz>
parents:
59497
diff
changeset
|
180 |
83369
d2e0850b17f2
Make xt-mouse.el multi-tty-compatible.
Karoly Lorentey <lorentey@elte.hu>
parents:
83353
diff
changeset
|
181 (set-terminal-parameter nil 'xterm-mouse-x x) |
d2e0850b17f2
Make xt-mouse.el multi-tty-compatible.
Karoly Lorentey <lorentey@elte.hu>
parents:
83353
diff
changeset
|
182 (set-terminal-parameter nil 'xterm-mouse-y y) |
67176
c1b362058986
(xterm-mouse-event): Set last-input-event so
Nick Roberts <nickrob@snap.net.nz>
parents:
64762
diff
changeset
|
183 (setq |
c1b362058986
(xterm-mouse-event): Set last-input-event so
Nick Roberts <nickrob@snap.net.nz>
parents:
64762
diff
changeset
|
184 last-input-event |
76660
b521c6db4e10
(xterm-mouse-event): Remove unused var `time'.
Kim F. Storm <storm@cua.dk>
parents:
76659
diff
changeset
|
185 (list mouse |
76657
ee5fbf83e732
(xterm-mouse-event): Compute a timestamp using
Nick Roberts <nickrob@snap.net.nz>
parents:
75347
diff
changeset
|
186 (let ((event (if w |
ee5fbf83e732
(xterm-mouse-event): Compute a timestamp using
Nick Roberts <nickrob@snap.net.nz>
parents:
75347
diff
changeset
|
187 (posn-at-x-y (- x left) (- y top) w t) |
ee5fbf83e732
(xterm-mouse-event): Compute a timestamp using
Nick Roberts <nickrob@snap.net.nz>
parents:
75347
diff
changeset
|
188 (append (list nil 'menu-bar) |
76924
44b6d7a1ef55
(xterm-mouse-event): Don't use the left edge of the
Nick Roberts <nickrob@snap.net.nz>
parents:
76660
diff
changeset
|
189 (nthcdr 2 (posn-at-x-y x y)))))) |
76657
ee5fbf83e732
(xterm-mouse-event): Compute a timestamp using
Nick Roberts <nickrob@snap.net.nz>
parents:
75347
diff
changeset
|
190 (setcar (nthcdr 3 event) timestamp) |
ee5fbf83e732
(xterm-mouse-event): Compute a timestamp using
Nick Roberts <nickrob@snap.net.nz>
parents:
75347
diff
changeset
|
191 event))))) |
13163 | 192 |
193 ;;;###autoload | |
44520
53a8da1bdd13
(xterm-mouse-mode): Use define-minor-mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
41814
diff
changeset
|
194 (define-minor-mode xterm-mouse-mode |
13163 | 195 "Toggle XTerm mouse mode. |
78492
7c8949dbfa0d
Replace `iff' in doc-strings and comments.
Glenn Morris <rgm@gnu.org>
parents:
78236
diff
changeset
|
196 With prefix arg, turn XTerm mouse mode on if arg is positive, otherwise turn |
7c8949dbfa0d
Replace `iff' in doc-strings and comments.
Glenn Morris <rgm@gnu.org>
parents:
78236
diff
changeset
|
197 it off. |
13163 | 198 |
61255
321e7372c394
(xterm-mouse-mode): Add explicit Custom group (mouse). Doc fix.
Luc Teirlinck <teirllm@auburn.edu>
parents:
59594
diff
changeset
|
199 Turn it on to use Emacs mouse commands, and off to use xterm mouse commands. |
61513
a53097b105b0
(xterm-mouse-mode): Provide correct standard value for Custom. No
Luc Teirlinck <teirllm@auburn.edu>
parents:
61255
diff
changeset
|
200 This works in terminal emulators compatible with xterm. It only |
a53097b105b0
(xterm-mouse-mode): Provide correct standard value for Custom. No
Luc Teirlinck <teirllm@auburn.edu>
parents:
61255
diff
changeset
|
201 works for simple uses of the mouse. Basically, only non-modified |
a53097b105b0
(xterm-mouse-mode): Provide correct standard value for Custom. No
Luc Teirlinck <teirllm@auburn.edu>
parents:
61255
diff
changeset
|
202 single clicks are supported. When turned on, the normal xterm |
a53097b105b0
(xterm-mouse-mode): Provide correct standard value for Custom. No
Luc Teirlinck <teirllm@auburn.edu>
parents:
61255
diff
changeset
|
203 mouse functionality for such clicks is still available by holding |
a53097b105b0
(xterm-mouse-mode): Provide correct standard value for Custom. No
Luc Teirlinck <teirllm@auburn.edu>
parents:
61255
diff
changeset
|
204 down the SHIFT key while pressing the mouse button." |
a53097b105b0
(xterm-mouse-mode): Provide correct standard value for Custom. No
Luc Teirlinck <teirllm@auburn.edu>
parents:
61255
diff
changeset
|
205 :global t :group 'mouse |
93371
b6fc476e0627
(xterm-mouse-mode): Use delete-terminal-functions.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
93177
diff
changeset
|
206 (let ((do-hook (if xterm-mouse-mode 'add-hook 'remove-hook))) |
b6fc476e0627
(xterm-mouse-mode): Use delete-terminal-functions.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
93177
diff
changeset
|
207 (funcall do-hook 'terminal-init-xterm-hook |
b6fc476e0627
(xterm-mouse-mode): Use delete-terminal-functions.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
93177
diff
changeset
|
208 'turn-on-xterm-mouse-tracking-on-terminal) |
b6fc476e0627
(xterm-mouse-mode): Use delete-terminal-functions.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
93177
diff
changeset
|
209 (funcall do-hook 'delete-terminal-functions |
b6fc476e0627
(xterm-mouse-mode): Use delete-terminal-functions.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
93177
diff
changeset
|
210 'turn-off-xterm-mouse-tracking-on-terminal) |
b6fc476e0627
(xterm-mouse-mode): Use delete-terminal-functions.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
93177
diff
changeset
|
211 (funcall do-hook 'suspend-tty-functions |
b6fc476e0627
(xterm-mouse-mode): Use delete-terminal-functions.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
93177
diff
changeset
|
212 'turn-off-xterm-mouse-tracking-on-terminal) |
b6fc476e0627
(xterm-mouse-mode): Use delete-terminal-functions.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
93177
diff
changeset
|
213 (funcall do-hook 'resume-tty-functions |
b6fc476e0627
(xterm-mouse-mode): Use delete-terminal-functions.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
93177
diff
changeset
|
214 'turn-on-xterm-mouse-tracking-on-terminal) |
b6fc476e0627
(xterm-mouse-mode): Use delete-terminal-functions.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
93177
diff
changeset
|
215 (funcall do-hook 'suspend-hook 'turn-off-xterm-mouse-tracking) |
b6fc476e0627
(xterm-mouse-mode): Use delete-terminal-functions.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
93177
diff
changeset
|
216 (funcall do-hook 'suspend-resume-hook 'turn-on-xterm-mouse-tracking) |
b6fc476e0627
(xterm-mouse-mode): Use delete-terminal-functions.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
93177
diff
changeset
|
217 (funcall do-hook 'kill-emacs-hook 'turn-off-xterm-mouse-tracking)) |
44520
53a8da1bdd13
(xterm-mouse-mode): Use define-minor-mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
41814
diff
changeset
|
218 (if xterm-mouse-mode |
53a8da1bdd13
(xterm-mouse-mode): Use define-minor-mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
41814
diff
changeset
|
219 ;; Turn it on |
83369
d2e0850b17f2
Make xt-mouse.el multi-tty-compatible.
Karoly Lorentey <lorentey@elte.hu>
parents:
83353
diff
changeset
|
220 (progn |
44520
53a8da1bdd13
(xterm-mouse-mode): Use define-minor-mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
41814
diff
changeset
|
221 (setq mouse-position-function #'xterm-mouse-position-function) |
53a8da1bdd13
(xterm-mouse-mode): Use define-minor-mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
41814
diff
changeset
|
222 (turn-on-xterm-mouse-tracking)) |
53a8da1bdd13
(xterm-mouse-mode): Use define-minor-mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
41814
diff
changeset
|
223 ;; Turn it off |
53a8da1bdd13
(xterm-mouse-mode): Use define-minor-mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
41814
diff
changeset
|
224 (turn-off-xterm-mouse-tracking 'force) |
53a8da1bdd13
(xterm-mouse-mode): Use define-minor-mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
41814
diff
changeset
|
225 (setq mouse-position-function nil))) |
13163 | 226 |
227 (defun turn-on-xterm-mouse-tracking () | |
27803 | 228 "Enable Emacs mouse tracking in xterm." |
95798
813561cb0d2c
(turn-on-xterm-mouse-tracking, turn-off-xterm-mouse-tracking):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
229 (dolist (terminal (terminal-list)) |
85416
58c70d072b21
Don't change the global function-key-map anny more.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84769
diff
changeset
|
230 (turn-on-xterm-mouse-tracking-on-terminal terminal))) |
13163 | 231 |
44520
53a8da1bdd13
(xterm-mouse-mode): Use define-minor-mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
41814
diff
changeset
|
232 (defun turn-off-xterm-mouse-tracking (&optional force) |
41814
42c496dc0b7d
(turn-off-xterm-mouse-tracking): Doc fix.
Andreas Schwab <schwab@suse.de>
parents:
38563
diff
changeset
|
233 "Disable Emacs mouse tracking in xterm." |
95798
813561cb0d2c
(turn-on-xterm-mouse-tracking, turn-off-xterm-mouse-tracking):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94678
diff
changeset
|
234 (dolist (terminal (terminal-list)) |
85416
58c70d072b21
Don't change the global function-key-map anny more.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84769
diff
changeset
|
235 (turn-off-xterm-mouse-tracking-on-terminal terminal))) |
83369
d2e0850b17f2
Make xt-mouse.el multi-tty-compatible.
Karoly Lorentey <lorentey@elte.hu>
parents:
83353
diff
changeset
|
236 |
85416
58c70d072b21
Don't change the global function-key-map anny more.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84769
diff
changeset
|
237 (defun turn-on-xterm-mouse-tracking-on-terminal (&optional terminal) |
83369
d2e0850b17f2
Make xt-mouse.el multi-tty-compatible.
Karoly Lorentey <lorentey@elte.hu>
parents:
83353
diff
changeset
|
238 "Enable xterm mouse tracking on TERMINAL." |
101816
5e57e0473132
(turn-on-xterm-mouse-tracking-on-terminal)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
100908
diff
changeset
|
239 (when (and xterm-mouse-mode (eq t (terminal-live-p terminal)) |
5e57e0473132
(turn-on-xterm-mouse-tracking-on-terminal)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
100908
diff
changeset
|
240 ;; Avoid the initial terminal which is not a termcap device. |
5e57e0473132
(turn-on-xterm-mouse-tracking-on-terminal)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
100908
diff
changeset
|
241 ;; FIXME: is there more elegant way to detect the initial terminal? |
5e57e0473132
(turn-on-xterm-mouse-tracking-on-terminal)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
100908
diff
changeset
|
242 (not (string= (terminal-name terminal) "initial_terminal"))) |
85416
58c70d072b21
Don't change the global function-key-map anny more.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84769
diff
changeset
|
243 (unless (terminal-parameter terminal 'xterm-mouse-mode) |
58c70d072b21
Don't change the global function-key-map anny more.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84769
diff
changeset
|
244 ;; Simulate selecting a terminal by selecting one of its frames ;-( |
58c70d072b21
Don't change the global function-key-map anny more.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84769
diff
changeset
|
245 (with-selected-frame (car (frames-on-display-list terminal)) |
58c70d072b21
Don't change the global function-key-map anny more.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84769
diff
changeset
|
246 (define-key input-decode-map "\e[M" 'xterm-mouse-translate)) |
58c70d072b21
Don't change the global function-key-map anny more.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84769
diff
changeset
|
247 (set-terminal-parameter terminal 'xterm-mouse-mode t)) |
83369
d2e0850b17f2
Make xt-mouse.el multi-tty-compatible.
Karoly Lorentey <lorentey@elte.hu>
parents:
83353
diff
changeset
|
248 (send-string-to-terminal "\e[?1000h" terminal))) |
13163 | 249 |
83369
d2e0850b17f2
Make xt-mouse.el multi-tty-compatible.
Karoly Lorentey <lorentey@elte.hu>
parents:
83353
diff
changeset
|
250 (defun turn-off-xterm-mouse-tracking-on-terminal (terminal) |
d2e0850b17f2
Make xt-mouse.el multi-tty-compatible.
Karoly Lorentey <lorentey@elte.hu>
parents:
83353
diff
changeset
|
251 "Disable xterm mouse tracking on TERMINAL." |
85416
58c70d072b21
Don't change the global function-key-map anny more.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84769
diff
changeset
|
252 ;; Only send the disable command to those terminals to which we've already |
58c70d072b21
Don't change the global function-key-map anny more.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84769
diff
changeset
|
253 ;; sent the enable command. |
58c70d072b21
Don't change the global function-key-map anny more.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84769
diff
changeset
|
254 (when (and (terminal-parameter terminal 'xterm-mouse-mode) |
101816
5e57e0473132
(turn-on-xterm-mouse-tracking-on-terminal)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
100908
diff
changeset
|
255 (eq t (terminal-live-p terminal)) |
5e57e0473132
(turn-on-xterm-mouse-tracking-on-terminal)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
100908
diff
changeset
|
256 ;; Avoid the initial terminal which is not a termcap device. |
5e57e0473132
(turn-on-xterm-mouse-tracking-on-terminal)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
100908
diff
changeset
|
257 ;; FIXME: is there more elegant way to detect the initial terminal? |
5e57e0473132
(turn-on-xterm-mouse-tracking-on-terminal)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
100908
diff
changeset
|
258 (not (string= (terminal-name terminal) "initial_terminal"))) |
85416
58c70d072b21
Don't change the global function-key-map anny more.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84769
diff
changeset
|
259 ;; We could remove the key-binding and unset the `xterm-mouse-mode' |
58c70d072b21
Don't change the global function-key-map anny more.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84769
diff
changeset
|
260 ;; terminal parameter, but it seems less harmful to send this escape |
58c70d072b21
Don't change the global function-key-map anny more.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84769
diff
changeset
|
261 ;; command too many times (or to catch an unintended key sequence), than |
58c70d072b21
Don't change the global function-key-map anny more.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84769
diff
changeset
|
262 ;; to send it too few times (or to fail to let xterm-mouse events |
58c70d072b21
Don't change the global function-key-map anny more.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84769
diff
changeset
|
263 ;; pass by untranslated). |
83369
d2e0850b17f2
Make xt-mouse.el multi-tty-compatible.
Karoly Lorentey <lorentey@elte.hu>
parents:
83353
diff
changeset
|
264 (send-string-to-terminal "\e[?1000l" terminal))) |
d2e0850b17f2
Make xt-mouse.el multi-tty-compatible.
Karoly Lorentey <lorentey@elte.hu>
parents:
83353
diff
changeset
|
265 |
13163 | 266 (provide 'xt-mouse) |
267 | |
77809
20f40276359e
(xterm-mouse-truncate-wrap): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
76924
diff
changeset
|
268 ;; arch-tag: 84962d4e-fae9-4c13-a9d7-ef4925a4ac03 |
13163 | 269 ;;; xt-mouse.el ends here |