;;; 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-2014 Free Software Foundation, Inc.
;; Author: John Heidemann <johnh@ISI.EDU>
;; Keywords: mouse
;; 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-
"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
(save-excursion ;; on a long line?
(let
- ((beg (progn (beginning-of-line) (point)))
+ ((beg (line-beginning-position))
(end (progn (end-of-line) (point))))
(if (> (- end beg) (window-width))
(setq truncate-lines t)
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)
(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
- col mouse-col-delta window-last-col
+ col
(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)
(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
- 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)))
(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
(provide 'mouse-drag)
-;; arch-tag: e47354ff-82f5-42c4-b3dc-88dd9c04b770
;;; mouse-drag.el ends here