# HG changeset patch # User stephent # Date 1060773763 0 # Node ID 9cf129cb99b9bfbb34d689d00571771e808f95fe # Parent 1fa8838efe9982fff49cd8de10064593f35366b7 [xemacs-hg @ 2003-08-13 11:22:42 by stephent] finer mwheel control <87oeytby87.fsf@tleepslib.sk.tsukuba.ac.jp> diff -r 1fa8838efe99 -r 9cf129cb99b9 lisp/ChangeLog --- a/lisp/ChangeLog Wed Aug 13 11:07:40 2003 +0000 +++ b/lisp/ChangeLog Wed Aug 13 11:22:43 2003 +0000 @@ -1,3 +1,10 @@ +2003-07-31 René Kyllingstad + + * mwheel.el (mwheel-scroll-amount): + * mwheel.el (mwheel-scroll): + * mwheel.el (mwheel-install): + bind C-mouse-{4,5} to scroll page by page. + 2003-08-03 Mike Sperber * files.el (insert-directory): Massage somewhat to be slightly diff -r 1fa8838efe99 -r 9cf129cb99b9 lisp/mwheel.el --- a/lisp/mwheel.el Wed Aug 13 11:07:40 2003 +0000 +++ b/lisp/mwheel.el Wed Aug 13 11:22:43 2003 +0000 @@ -49,22 +49,25 @@ '(event-basic-type posn-window event-start mwheel-event-window mwheel-event-button)) -(defcustom mwheel-scroll-amount '(5 . 1) +(defcustom mwheel-scroll-amount '(5 1 nil) "Amount to scroll windows by when spinning the mouse wheel. -This is actually a cons cell, where the first item is the amount to scroll -on a normal wheel event, and the second is the amount to scroll when the -wheel is moved with the shift key depressed. +A list with 3 elements specifying the amount to scroll on: a normal wheel +event, a wheel event with the shift key pressed, and a wheel event with the +control key pressed, in that order. Each item should be the number of lines to scroll, or `nil' for near full screen. A near full screen is `next-screen-context-lines' less than a full screen." :group 'mouse - :type '(cons + :type '(list (choice :tag "Normal" (const :tag "Full screen" :value nil) (integer :tag "Specific # of lines")) (choice :tag "Shifted" (const :tag "Full screen" :value nil) + (integer :tag "Specific # of lines")) + (choice :tag "Controlled" + (const :tag "Full screen" :value nil) (integer :tag "Specific # of lines")))) (defcustom mwheel-follow-mouse nil @@ -93,8 +96,10 @@ (selected-window) (select-window (mwheel-event-window event))))) (amt (if (memq 'shift (event-modifiers event)) - (cdr mwheel-scroll-amount) - (car mwheel-scroll-amount)))) + (cadr mwheel-scroll-amount) + (if (memq 'control (event-modifiers event)) + (caddr mwheel-scroll-amount) + (car mwheel-scroll-amount))))) (unwind-protect (case (mwheel-event-button event) (4 (scroll-down amt)) @@ -107,7 +112,9 @@ (defun mwheel-install () "Enable mouse wheel support." (interactive) - (let ((keys '([(mouse-4)] [(shift mouse-4)] [(mouse-5)] [(shift mouse-5)]))) + (let ((keys '([(mouse-4)] [(shift mouse-4)] [(control mouse-4)] + [(mouse-5)] [(shift mouse-5)] [(control mouse-5)]))) + ;; This condition-case is here because Emacs 19 will throw an error ;; if you try to define a key that it does not know about. I for one ;; prefer to just unconditionally do a mwheel-install in my .emacs, so