--- mouse-drag.el~ Mon Jan 8 20:12:12 2001 +++ mouse-drag.el Tue Nov 13 22:07:23 2001 @@ -297,7 +297,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 +335,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)