Mercurial > emacs
diff lisp/mwheel.el @ 32867:553975760fe9
(mouse-wheel-mode): New global minor mode.
(mwheel-install): Use `mouse-wheel-mode'.
author | Miles Bader <miles@gnu.org> |
---|---|
date | Wed, 25 Oct 2000 11:38:29 +0000 |
parents | 55a234a9fe88 |
children | d70bb5e33b91 |
line wrap: on
line diff
--- a/lisp/mwheel.el Wed Oct 25 11:38:08 2000 +0000 +++ b/lisp/mwheel.el Wed Oct 25 11:38:29 2000 +0000 @@ -94,9 +94,19 @@ (t (error "Bad binding in mwheel-scroll")))) (if curwin (select-window curwin))))) + +;;; Note this definition must be at the end of the file, because +;;; `define-minor-mode' actually calls the mode-function if the +;;; associated variable is non-nil, which requires that all needed +;;; functions be already defined. [This is arguably a bug in d-m-m] ;;;###autoload -(defun mwheel-install () - "Enable mouse wheel support." +(define-minor-mode mouse-wheel-mode + "Toggle mouse wheel support. +With prefix argument ARG, turn on if positive, otherwise off. +Returns non-nil if the new state is enabled." + nil nil nil + :global t + :group 'mouse ;; In the latest versions of XEmacs, we could just use ;; (S-)*mouse-[45], since those are aliases for the button ;; equivalents in XEmacs, but I want this to work in as many @@ -111,11 +121,20 @@ ;; that if the wheeled-mouse is there, it just works, and this way it ;; doesn't yell at me if I'm on my laptop or another machine, etc. (condition-case () - (while keys - (define-key global-map (car keys) 'mwheel-scroll) - (setq keys (cdr keys))) + (dolist (key keys) + (cond (mouse-wheel-mode + (define-key global-map key 'mwheel-scroll)) + ((eq (lookup-key global-map key) 'mwheel-scroll) + (define-key global-map key nil)))) (error nil)))) - + +;;; Compatibility entry point +;;;###autoload +(defun mwheel-install (&optional uninstall) + "Enable mouse wheel support." + (mouse-wheel-mode t)) + + (provide 'mwheel) ;;; mwheel.el ends here