changeset 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 a9bfd916f61a
children f6250d52a57e
files lisp/xt-mouse.el
diffstat 1 files changed, 8 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/xt-mouse.el	Tue Apr 03 21:15:37 2007 +0000
+++ b/lisp/xt-mouse.el	Tue Apr 03 21:16:17 2007 +0000
@@ -49,7 +49,8 @@
 
 ;; Mouse events symbols must have an 'event-kind property with
 ;; the value 'mouse-click.
-(dolist (event-type '(mouse-1 mouse-2 mouse-3))
+(dolist (event-type '(mouse-1 mouse-2 mouse-3
+			      M-down-mouse-1 M-down-mouse-2 M-down-mouse-3))
   (put event-type 'event-kind 'mouse-click))
 
 (defun xterm-mouse-translate (event)
@@ -140,6 +141,11 @@
 		 ;; a release-event only, no down-event.
 		 (cond ((>= type 64)
 			(format "mouse-%d" (- type 60)))
+		       ((memq type '(8 9 10))
+			(setq xterm-mouse-last type)
+			(format "M-down-mouse-%d" (- type 7)))
+		       ((= type 11)
+			(format "mouse-%d" (- xterm-mouse-last 7)))
 		       ((= type 3)
 			(format "mouse-%d" (+ 1 xterm-mouse-last)))
 		       (t
@@ -158,7 +164,7 @@
 	   (let ((event (if w
 			    (posn-at-x-y (- x left) (- y top) w t)
 			  (append (list nil 'menu-bar)
-				  (nthcdr 2 (posn-at-x-y x y w t))))))
+				  (nthcdr 2 (posn-at-x-y x y))))))
 	     (setcar (nthcdr 3 event) timestamp)
 	     event)))))