comparison lisp/xt-mouse.el @ 76924:44b6d7a1ef55

(xterm-mouse-event): Don't use the left edge of the window if we're outside it e.g menu-bar.
author Nick Roberts <nickrob@snap.net.nz>
date Tue, 03 Apr 2007 21:16:17 +0000
parents b521c6db4e10
children 20f40276359e 955868b1755c dc002877ce12 4ef881a120fe
comparison
equal deleted inserted replaced
76923:a9bfd916f61a 76924:44b6d7a1ef55
47 47
48 (defvar xterm-mouse-last) 48 (defvar xterm-mouse-last)
49 49
50 ;; Mouse events symbols must have an 'event-kind property with 50 ;; Mouse events symbols must have an 'event-kind property with
51 ;; the value 'mouse-click. 51 ;; the value 'mouse-click.
52 (dolist (event-type '(mouse-1 mouse-2 mouse-3)) 52 (dolist (event-type '(mouse-1 mouse-2 mouse-3
53 M-down-mouse-1 M-down-mouse-2 M-down-mouse-3))
53 (put event-type 'event-kind 'mouse-click)) 54 (put event-type 'event-kind 'mouse-click))
54 55
55 (defun xterm-mouse-translate (event) 56 (defun xterm-mouse-translate (event)
56 "Read a click and release event from XTerm." 57 "Read a click and release event from XTerm."
57 (save-excursion 58 (save-excursion
138 ;; differently (see xc/programs/xterm/button.c, 139 ;; differently (see xc/programs/xterm/button.c,
139 ;; function EditorButton), and there seems to come in 140 ;; function EditorButton), and there seems to come in
140 ;; a release-event only, no down-event. 141 ;; a release-event only, no down-event.
141 (cond ((>= type 64) 142 (cond ((>= type 64)
142 (format "mouse-%d" (- type 60))) 143 (format "mouse-%d" (- type 60)))
144 ((memq type '(8 9 10))
145 (setq xterm-mouse-last type)
146 (format "M-down-mouse-%d" (- type 7)))
147 ((= type 11)
148 (format "mouse-%d" (- xterm-mouse-last 7)))
143 ((= type 3) 149 ((= type 3)
144 (format "mouse-%d" (+ 1 xterm-mouse-last))) 150 (format "mouse-%d" (+ 1 xterm-mouse-last)))
145 (t 151 (t
146 (setq xterm-mouse-last type) 152 (setq xterm-mouse-last type)
147 (format "down-mouse-%d" (+ 1 type)))))) 153 (format "down-mouse-%d" (+ 1 type))))))
156 last-input-event 162 last-input-event
157 (list mouse 163 (list mouse
158 (let ((event (if w 164 (let ((event (if w
159 (posn-at-x-y (- x left) (- y top) w t) 165 (posn-at-x-y (- x left) (- y top) w t)
160 (append (list nil 'menu-bar) 166 (append (list nil 'menu-bar)
161 (nthcdr 2 (posn-at-x-y x y w t)))))) 167 (nthcdr 2 (posn-at-x-y x y))))))
162 (setcar (nthcdr 3 event) timestamp) 168 (setcar (nthcdr 3 event) timestamp)
163 event))))) 169 event)))))
164 170
165 ;;;###autoload 171 ;;;###autoload
166 (define-minor-mode xterm-mouse-mode 172 (define-minor-mode xterm-mouse-mode