emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/mouse-drag.el


From: Richard M. Stallman
Subject: [Emacs-diffs] Changes to emacs/lisp/mouse-drag.el
Date: Sat, 17 Nov 2001 17:37:40 -0500

Index: emacs/lisp/mouse-drag.el
diff -u emacs/lisp/mouse-drag.el:1.8 emacs/lisp/mouse-drag.el:1.9
--- emacs/lisp/mouse-drag.el:1.8        Mon Jan  8 14:12:12 2001
+++ emacs/lisp/mouse-drag.el    Sat Nov 17 17:37:39 2001
@@ -208,7 +208,7 @@
         (start-col (car (posn-col-row start-posn)))
         (old-selected-window (selected-window))
         event end row mouse-delta scroll-delta
-        have-scrolled point-event-p old-binding
+        have-scrolled
         window-last-row
         col mouse-col-delta window-last-col
         (scroll-col-delta 0)
@@ -261,18 +261,13 @@
              (mouse-drag-safe-scroll scroll-delta scroll-col-delta)
              (mouse-drag-repeatedly-safe-scroll scroll-delta 
scroll-col-delta))))) ;xxx
     ;; If it was a click and not a drag, prepare to pass the event on.
-    ;; Note:  We must determine the pass-through event before restoring
-    ;; the window, but invoke it after.  Sigh.
+    ;; Is there a more correct way to reconstruct the event?
     (if (and (not have-scrolled)
             (mouse-drag-events-are-point-events-p start-posn end))
-       (setq point-event-p t
-             old-binding (key-binding
-                          (vector (event-basic-type start-event)))))
+       (push (cons (event-basic-type start-event) (cdr start-event))
+             unread-command-events))
     ;; Now restore the old window.
-    (select-window old-selected-window)
-    ;; For clicks, call the old function.
-    (if point-event-p
-       (call-interactively old-binding))))
+    (select-window old-selected-window)))
 
 (defun mouse-drag-drag (start-event)
   "\"Drag\" the page according to a mouse drag.
@@ -297,7 +292,7 @@
         (start-col (car (posn-col-row start-posn)))
         (old-selected-window (selected-window))
         event end row mouse-delta scroll-delta
-        have-scrolled point-event-p old-binding
+        have-scrolled
         window-last-row
         col mouse-col-delta window-last-col
         (scroll-col-delta 0)
@@ -335,18 +330,14 @@
                (setq have-scrolled t)
                (mouse-drag-safe-scroll scroll-delta scroll-col-delta)))))))
     ;; If it was a click and not a drag, prepare to pass the event on.
-    ;; Note:  We must determine the pass-through event before restoring
-    ;; the window, but invoke it after.  Sigh.
+    ;; Is there a more correct way to reconstruct the event?
     (if (and (not have-scrolled)
             (mouse-drag-events-are-point-events-p start-posn end))
-       (setq point-event-p t
-             old-binding (key-binding
-                          (vector (event-basic-type start-event)))))
+       (push (cons (event-basic-type start-event) (cdr start-event))
+             unread-command-events))
     ;; Now restore the old window.
-    (select-window old-selected-window)
-    ;; For clicks, call the old function.
-    (if point-event-p
-       (call-interactively old-binding))))
+    (select-window old-selected-window)))
+
 
 (provide 'mouse-drag)
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]