]> git.eshelyaron.com Git - emacs.git/commitdiff
(mouse-drag-safe-scroll): Bind
authorGerd Moellmann <gerd@gnu.org>
Fri, 5 Jan 2001 14:51:50 +0000 (14:51 +0000)
committerGerd Moellmann <gerd@gnu.org>
Fri, 5 Jan 2001 14:51:50 +0000 (14:51 +0000)
scroll-preserve-screen-position to nil.

lisp/ChangeLog
lisp/mouse-drag.el

index a931fbec85085ea285b11e67c74d6b656f39bba2..6f92c3f1ed732dc6585255a8b0fe224809cca34d 100644 (file)
@@ -1,5 +1,8 @@
 2001-01-05  Gerd Moellmann  <gerd@gnu.org>
 
+       * mouse-drag.el (mouse-drag-safe-scroll): Bind
+       scroll-preserve-screen-position to nil.
+
        * isearch.el (isearch-old-signal-hook): New variable.
        (isearch-mode): Set signal-hook-function to isearch-done.
        (isearch-done): Restore old signal-hook-function.
index 54475da31088bafc017842b6895ececdb2bb6f49..0714078fdeac1a82d9383da2360e2da073819f25 100644 (file)
@@ -1,6 +1,6 @@
 ;;; mouse-drag.el --- use mouse-2 to do a new style of scrolling
 
-;; Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 2001 Free Software Foundation, Inc.
 
 ;; Author: John Heidemann <johnh@ISI.EDU>
 ;; Keywords: mouse
 (defun mouse-drag-safe-scroll (row-delta &optional col-delta)
   "Scroll down ROW-DELTA lines and right COL-DELTA, ignoring buffer edge errors.
 Keep the cursor on the screen as needed."
-  (if (and row-delta
-          (/= 0 row-delta))
-      (condition-case nil   ;; catch and ignore movement errors
-         (scroll-down row-delta)
-       (beginning-of-buffer (message "Beginning of buffer"))
-       (end-of-buffer (message "End of buffer"))))
-  (if (and col-delta
-          (/= 0 col-delta))
-      (progn
-       (scroll-right col-delta)
-       ;; Make sure that the point stays on the visible screen
-       ;; (if truncation-lines in set).
-       ;; This code mimics the behavior we automatically get
-       ;; when doing vertical scrolling.
-       ;; Problem identified and a fix suggested by Tom Wurgler.
-       (cond
-        ((< (current-column) (window-hscroll))
-         (move-to-column (window-hscroll))) ; make on left column
-        ((> (- (current-column) (window-hscroll) (window-width) -2) 0)
-         (move-to-column (+ (window-width) (window-hscroll) -3)))))))
+  (let ((scroll-preserve-screen-position nil))
+    (if (and row-delta
+            (/= 0 row-delta))
+       (condition-case nil ;; catch and ignore movement errors
+           (scroll-down row-delta)
+         (beginning-of-buffer (message "Beginning of buffer"))
+         (end-of-buffer (message "End of buffer"))))
+    (if (and col-delta
+            (/= 0 col-delta))
+       (progn
+         (scroll-right col-delta)
+         ;; Make sure that the point stays on the visible screen
+         ;; (if truncation-lines in set).
+         ;; This code mimics the behavior we automatically get
+         ;; when doing vertical scrolling.
+         ;; Problem identified and a fix suggested by Tom Wurgler.
+         (cond
+          ((< (current-column) (window-hscroll))
+           (move-to-column (window-hscroll))) ; make on left column
+          ((> (- (current-column) (window-hscroll) (window-width) -2) 0)
+           (move-to-column (+ (window-width) (window-hscroll) -3))))))))
 
 (defun mouse-drag-repeatedly-safe-scroll (row-delta &optional col-delta)
   "Scroll ROW-DELTA rows and COL-DELTA cols until an event happens."