]> code.delx.au - gnu-emacs/blobdiff - lisp/mouse-drag.el
Replace eldoc-documentation-function with a hook
[gnu-emacs] / lisp / mouse-drag.el
index 51f4612d689944c6561722daa43e77f79f72203b..e46ea00d7ec09076a3d7d5e0fec3ca9d1508aed9 100644 (file)
@@ -1,7 +1,6 @@
 ;;; mouse-drag.el --- use mouse-2 to do a new style of scrolling
 
 ;;; mouse-drag.el --- use mouse-2 to do a new style of scrolling
 
-;; Copyright (C) 1996, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
-;;   2008, 2009, 2010, 2011  Free Software Foundation, Inc.
+;; Copyright (C) 1996-1997, 2001-2016 Free Software Foundation, Inc.
 
 ;; Author: John Heidemann <johnh@ISI.EDU>
 ;; Keywords: mouse
 
 ;; Author: John Heidemann <johnh@ISI.EDU>
 ;; Keywords: mouse
@@ -47,7 +46,7 @@
 ;; If you like mouse-drag, you should also check out mouse-copy
 ;; for ``one-click text copy and move''.
 ;;
 ;; If you like mouse-drag, you should also check out mouse-copy
 ;; for ``one-click text copy and move''.
 ;;
-;; To use mouse-drag, place the following in your .emacs file:
+;; To use mouse-drag, place the following in your init file:
 ;; -either-
 ;;     (global-set-key [down-mouse-2] 'mouse-drag-throw)
 ;; -or-
 ;; -either-
 ;;     (global-set-key [down-mouse-2] 'mouse-drag-throw)
 ;; -or-
@@ -157,7 +156,7 @@ Keep the cursor on the screen as needed."
   "Determine if it's wise to enable col-scrolling for the current window.
 Basically, we check for existing horizontal scrolling."
   (or truncate-lines
   "Determine if it's wise to enable col-scrolling for the current window.
 Basically, we check for existing horizontal scrolling."
   (or truncate-lines
-      (> (window-hscroll (selected-window)) 0)
+      (> (window-hscroll) 0)
       (not (window-full-width-p))
       (and
        mouse-drag-electric-col-scrolling
       (not (window-full-width-p))
       (and
        mouse-drag-electric-col-scrolling
@@ -170,7 +169,7 @@ Basically, we check for existing horizontal scrolling."
             nil))))))
 
 (defvar mouse-throw-with-scroll-bar nil
             nil))))))
 
 (defvar mouse-throw-with-scroll-bar nil
-  "*Set direction of mouse-throwing.
+  "Set direction of mouse-throwing.
 If nil, the text moves in the direction the mouse moves.
 If t, the scroll bar moves in the direction the mouse moves.")
 (defconst mouse-throw-magnifier-min -6)
 If nil, the text moves in the direction the mouse moves.
 If t, the scroll bar moves in the direction the mouse moves.")
 (defconst mouse-throw-magnifier-min -6)
@@ -195,7 +194,7 @@ from the original mouse click to the current mouse location.  Try it;
 you'll like it.  It's easier to observe than to explain.
 
 If the mouse is clicked and released in the same place of time we
 you'll like it.  It's easier to observe than to explain.
 
 If the mouse is clicked and released in the same place of time we
-assume that the user didn't want to scdebugroll but wanted to whatever
+assume that the user didn't want to scroll but wanted to whatever
 mouse-2 used to do, so we pass it through.
 
 Throw scrolling was inspired (but is not identical to) the \"hand\"
 mouse-2 used to do, so we pass it through.
 
 Throw scrolling was inspired (but is not identical to) the \"hand\"
@@ -207,7 +206,7 @@ about which direction is natural.  Perhaps it has to do with which
 hemisphere you're in.)
 
 To test this function, evaluate:
 hemisphere you're in.)
 
 To test this function, evaluate:
-    (global-set-key [down-mouse-2] 'mouse-drag-throw)"
+    (global-set-key [down-mouse-2] \\='mouse-drag-throw)"
   (interactive "e")
   ;; we want to do save-selected-window, but that requires 19.29
   (let* ((start-posn (event-start start-event))
   (interactive "e")
   ;; we want to do save-selected-window, but that requires 19.29
   (let* ((start-posn (event-start start-event))
@@ -215,17 +214,16 @@ To test this function, evaluate:
         (start-row (cdr (posn-col-row start-posn)))
         (start-col (car (posn-col-row start-posn)))
         (old-selected-window (selected-window))
         (start-row (cdr (posn-col-row start-posn)))
         (start-col (car (posn-col-row start-posn)))
         (old-selected-window (selected-window))
-        event end row mouse-delta scroll-delta
+        event end row scroll-delta
         have-scrolled
         have-scrolled
-        window-last-row
-        col mouse-col-delta window-last-col
+        col
         (scroll-col-delta 0)
         (scroll-col-delta 0)
-        adjusted-mouse-col-delta
-        adjusted-mouse-delta
         ;; be conservative about allowing horizontal scrolling
         (col-scrolling-p (mouse-drag-should-do-col-scrolling)))
     (select-window start-window)
     (track-mouse
         ;; be conservative about allowing horizontal scrolling
         (col-scrolling-p (mouse-drag-should-do-col-scrolling)))
     (select-window start-window)
     (track-mouse
+      ;; Don't change the mouse pointer shape while we drag.
+      (setq track-mouse 'dragging)
       (while (progn
               (setq event (read-event)
                     end (event-end event)
       (while (progn
               (setq event (read-event)
                     end (event-end event)
@@ -268,7 +266,7 @@ Drag scrolling is identical to the \"hand\" option in MacPaint, or the
 middle button in Tk text widgets.
 
 To test this function, evaluate:
 middle button in Tk text widgets.
 
 To test this function, evaluate:
-    (global-set-key [down-mouse-2] 'mouse-drag-drag)"
+    (global-set-key [down-mouse-2] \\='mouse-drag-drag)"
   (interactive "e")
   ;; we want to do save-selected-window, but that requires 19.29
   (let* ((start-posn (event-start start-event))
   (interactive "e")
   ;; we want to do save-selected-window, but that requires 19.29
   (let* ((start-posn (event-start start-event))
@@ -276,10 +274,10 @@ To test this function, evaluate:
         (start-row (cdr (posn-col-row start-posn)))
         (start-col (car (posn-col-row start-posn)))
         (old-selected-window (selected-window))
         (start-row (cdr (posn-col-row start-posn)))
         (start-col (car (posn-col-row start-posn)))
         (old-selected-window (selected-window))
-        event end row mouse-delta scroll-delta
+        event end row scroll-delta
         have-scrolled
         window-last-row
         have-scrolled
         window-last-row
-        col mouse-col-delta window-last-col
+        col window-last-col
         (scroll-col-delta 0)
         ;; be conservative about allowing horizontal scrolling
         (col-scrolling-p (mouse-drag-should-do-col-scrolling)))
         (scroll-col-delta 0)
         ;; be conservative about allowing horizontal scrolling
         (col-scrolling-p (mouse-drag-should-do-col-scrolling)))
@@ -295,7 +293,7 @@ To test this function, evaluate:
               (or (mouse-movement-p event)
                   (eq (car-safe event) 'switch-frame)))
        ;; Scroll if see if we're on the edge.
               (or (mouse-movement-p event)
                   (eq (car-safe event) 'switch-frame)))
        ;; Scroll if see if we're on the edge.
-       ;; NEEDSWORK: should handle mouse-in-other window.
+       ;; FIXME: should handle mouse-in-other window.
        (cond
         ((not (eq start-window (posn-window end)))
          t) ; wait for return to original window
        (cond
         ((not (eq start-window (posn-window end)))
          t) ; wait for return to original window