]> code.delx.au - gnu-emacs/blobdiff - lisp/mwheel.el
Do not prompt twice to save a buffer
[gnu-emacs] / lisp / mwheel.el
index d16c20cd585f243e962be554b2f19b7b8b6da004..9e03854fd11668455515306647a57f66ba1a11b2 100644 (file)
@@ -1,7 +1,6 @@
 ;;; mwheel.el --- Wheel mouse support
 
-;; Copyright (C) 1998, 2000, 2001, 2002, 2002, 2004, 2005, 2006, 2007,
-;;   2008, 2009, 2010, 2011  Free Software Foundation, Inc.
+;; Copyright (C) 1998, 2000-2016 Free Software Foundation, Inc.
 ;; Maintainer: William M. Perry <wmperry@gnu.org>
 ;; Keywords: mouse
 ;; Package: emacs
@@ -188,7 +187,8 @@ This can be slightly disconcerting, but some people prefer it."
 
 (defun mwheel-scroll (event)
   "Scroll up or down according to the EVENT.
-This should only be bound to mouse buttons 4 and 5."
+This should be bound only to mouse buttons 4 and 5 on non-Windows
+systems."
   (interactive (list last-input-event))
   (let* ((curwin (if mouse-wheel-follow-mouse
                      (prog1
@@ -233,12 +233,17 @@ This should only be bound to mouse buttons 4 and 5."
                    (end-of-buffer (while t (funcall mwheel-scroll-up-function)))))
                (t (error "Bad binding in mwheel-scroll"))))
       (if curwin (select-window curwin)))
-    ;; If there is a temporarily active region, deactivate it iff
+    ;; If there is a temporarily active region, deactivate it if
     ;; scrolling moves point.
     (when opoint
       (with-current-buffer buffer
        (when (/= opoint (point))
-         (deactivate-mark)))))
+         ;; Call `deactivate-mark' at the original position, so that
+         ;; the original region is saved to the X selection.
+         (let ((newpoint (point)))
+           (goto-char opoint)
+           (deactivate-mark)
+           (goto-char newpoint))))))
   (when (and mouse-wheel-click-event mouse-wheel-inhibit-click-time)
     (if mwheel-inhibit-click-event-timer
        (cancel-timer mwheel-inhibit-click-event-timer)
@@ -251,11 +256,11 @@ This should only be bound to mouse buttons 4 and 5."
 
 (defvar mwheel-installed-bindings nil)
 
-;; preloaded ;;;###autoload
 (define-minor-mode mouse-wheel-mode
-  "Toggle mouse wheel support.
-With prefix argument ARG, turn on if positive, otherwise off.
-Return non-nil if the new state is enabled."
+  "Toggle mouse wheel support (Mouse Wheel mode).
+With a prefix argument ARG, enable Mouse Wheel mode if ARG is
+positive, and disable it otherwise.  If called from Lisp, enable
+the mode if ARG is omitted or nil."
   :init-value t
   ;; We'd like to use custom-initialize-set here so the setup is done
   ;; before dumping, but at the point where the defcustom is evaluated,
@@ -285,5 +290,4 @@ Return non-nil if the new state is enabled."
 
 (provide 'mwheel)
 
-;; arch-tag: 50ed00e7-3686-4b7a-8037-fb31aa5c237f
 ;;; mwheel.el ends here