Mercurial > emacs
annotate lisp/mwheel.el @ 69571:4f6b547120ec
(set_cursor_from_row): Fix cursor property on overlay string,
so it doesn't associate overlay string with following glyph by default.
Allow integer property value to specify explicit number of buffer
positions associate with overlay string.
author | Kim F. Storm <storm@cua.dk> |
---|---|
date | Sun, 19 Mar 2006 19:38:48 +0000 |
parents | b7113ead6c0a |
children | c8171c0fa382 9e490faa9f6b |
rev | line source |
---|---|
48574
3e3b1f1265f5
Avoid accidental yanking of text while scrolling with
Kim F. Storm <storm@cua.dk>
parents:
48253
diff
changeset
|
1 ;;; mwheel.el --- Wheel mouse support |
26398
7eb699cb9ef2
Initial import from perry
William M. Perry <wmperry@aventail.com>
parents:
diff
changeset
|
2 |
64762
41bb365f41c4
Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
64091
diff
changeset
|
3 ;; Copyright (C) 1998, 2000, 2001, 2002, 2002, 2004, |
68651
3bd95f4f2941
Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
66682
diff
changeset
|
4 ;; 2005, 2006 Free Software Foundation, Inc. |
26398
7eb699cb9ef2
Initial import from perry
William M. Perry <wmperry@aventail.com>
parents:
diff
changeset
|
5 ;; Maintainer: William M. Perry <wmperry@gnu.org> |
7eb699cb9ef2
Initial import from perry
William M. Perry <wmperry@aventail.com>
parents:
diff
changeset
|
6 ;; Keywords: mouse |
7eb699cb9ef2
Initial import from perry
William M. Perry <wmperry@aventail.com>
parents:
diff
changeset
|
7 |
26410
55a234a9fe88
Fix copyright notice. Don't require 'cl at run time.
Gerd Moellmann <gerd@gnu.org>
parents:
26398
diff
changeset
|
8 ;; This file is part of GNU Emacs. |
26398
7eb699cb9ef2
Initial import from perry
William M. Perry <wmperry@aventail.com>
parents:
diff
changeset
|
9 |
26410
55a234a9fe88
Fix copyright notice. Don't require 'cl at run time.
Gerd Moellmann <gerd@gnu.org>
parents:
26398
diff
changeset
|
10 ;; GNU Emacs is free software; you can redistribute it and/or modify |
55a234a9fe88
Fix copyright notice. Don't require 'cl at run time.
Gerd Moellmann <gerd@gnu.org>
parents:
26398
diff
changeset
|
11 ;; it under the terms of the GNU General Public License as published by |
26398
7eb699cb9ef2
Initial import from perry
William M. Perry <wmperry@aventail.com>
parents:
diff
changeset
|
12 ;; the Free Software Foundation; either version 2, or (at your option) |
7eb699cb9ef2
Initial import from perry
William M. Perry <wmperry@aventail.com>
parents:
diff
changeset
|
13 ;; any later version. |
7eb699cb9ef2
Initial import from perry
William M. Perry <wmperry@aventail.com>
parents:
diff
changeset
|
14 |
26410
55a234a9fe88
Fix copyright notice. Don't require 'cl at run time.
Gerd Moellmann <gerd@gnu.org>
parents:
26398
diff
changeset
|
15 ;; GNU Emacs is distributed in the hope that it will be useful, |
55a234a9fe88
Fix copyright notice. Don't require 'cl at run time.
Gerd Moellmann <gerd@gnu.org>
parents:
26398
diff
changeset
|
16 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
55a234a9fe88
Fix copyright notice. Don't require 'cl at run time.
Gerd Moellmann <gerd@gnu.org>
parents:
26398
diff
changeset
|
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
55a234a9fe88
Fix copyright notice. Don't require 'cl at run time.
Gerd Moellmann <gerd@gnu.org>
parents:
26398
diff
changeset
|
18 ;; GNU General Public License for more details. |
26398
7eb699cb9ef2
Initial import from perry
William M. Perry <wmperry@aventail.com>
parents:
diff
changeset
|
19 |
7eb699cb9ef2
Initial import from perry
William M. Perry <wmperry@aventail.com>
parents:
diff
changeset
|
20 ;; You should have received a copy of the GNU General Public License |
26410
55a234a9fe88
Fix copyright notice. Don't require 'cl at run time.
Gerd Moellmann <gerd@gnu.org>
parents:
26398
diff
changeset
|
21 ;; along with GNU Emacs; see the file COPYING. If not, write to the |
64091 | 22 ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
23 ;; Boston, MA 02110-1301, USA. | |
26398
7eb699cb9ef2
Initial import from perry
William M. Perry <wmperry@aventail.com>
parents:
diff
changeset
|
24 |
7eb699cb9ef2
Initial import from perry
William M. Perry <wmperry@aventail.com>
parents:
diff
changeset
|
25 ;;; Commentary: |
7eb699cb9ef2
Initial import from perry
William M. Perry <wmperry@aventail.com>
parents:
diff
changeset
|
26 |
7eb699cb9ef2
Initial import from perry
William M. Perry <wmperry@aventail.com>
parents:
diff
changeset
|
27 ;; This code will enable the use of the infamous 'wheel' on the new |
7eb699cb9ef2
Initial import from perry
William M. Perry <wmperry@aventail.com>
parents:
diff
changeset
|
28 ;; crop of mice. Under XFree86 and the XSuSE X Servers, the wheel |
7eb699cb9ef2
Initial import from perry
William M. Perry <wmperry@aventail.com>
parents:
diff
changeset
|
29 ;; events are sent as button4/button5 events. |
7eb699cb9ef2
Initial import from perry
William M. Perry <wmperry@aventail.com>
parents:
diff
changeset
|
30 |
7eb699cb9ef2
Initial import from perry
William M. Perry <wmperry@aventail.com>
parents:
diff
changeset
|
31 ;; I for one would prefer some way of converting the button4/button5 |
7eb699cb9ef2
Initial import from perry
William M. Perry <wmperry@aventail.com>
parents:
diff
changeset
|
32 ;; events into different event types, like 'mwheel-up' or |
7eb699cb9ef2
Initial import from perry
William M. Perry <wmperry@aventail.com>
parents:
diff
changeset
|
33 ;; 'mwheel-down', but I cannot find a way to do this very easily (or |
7eb699cb9ef2
Initial import from perry
William M. Perry <wmperry@aventail.com>
parents:
diff
changeset
|
34 ;; portably), so for now I just live with it. |
7eb699cb9ef2
Initial import from perry
William M. Perry <wmperry@aventail.com>
parents:
diff
changeset
|
35 |
7eb699cb9ef2
Initial import from perry
William M. Perry <wmperry@aventail.com>
parents:
diff
changeset
|
36 ;; To enable this code, simply put this at the top of your .emacs |
7eb699cb9ef2
Initial import from perry
William M. Perry <wmperry@aventail.com>
parents:
diff
changeset
|
37 ;; file: |
7eb699cb9ef2
Initial import from perry
William M. Perry <wmperry@aventail.com>
parents:
diff
changeset
|
38 ;; |
51271 | 39 ;; (mouse-wheel-mode 1) |
26398
7eb699cb9ef2
Initial import from perry
William M. Perry <wmperry@aventail.com>
parents:
diff
changeset
|
40 |
7eb699cb9ef2
Initial import from perry
William M. Perry <wmperry@aventail.com>
parents:
diff
changeset
|
41 ;;; Code: |
7eb699cb9ef2
Initial import from perry
William M. Perry <wmperry@aventail.com>
parents:
diff
changeset
|
42 |
7eb699cb9ef2
Initial import from perry
William M. Perry <wmperry@aventail.com>
parents:
diff
changeset
|
43 (require 'custom) |
48574
3e3b1f1265f5
Avoid accidental yanking of text while scrolling with
Kim F. Storm <storm@cua.dk>
parents:
48253
diff
changeset
|
44 (require 'timer) |
26398
7eb699cb9ef2
Initial import from perry
William M. Perry <wmperry@aventail.com>
parents:
diff
changeset
|
45 |
38582
96ca8702243e
(mouse-wheel-down-button, mouse-wheel-up-button):
Gerd Moellmann <gerd@gnu.org>
parents:
33227
diff
changeset
|
46 ;; Setter function for mouse-button user-options. Switch Mouse Wheel |
96ca8702243e
(mouse-wheel-down-button, mouse-wheel-up-button):
Gerd Moellmann <gerd@gnu.org>
parents:
33227
diff
changeset
|
47 ;; mode off and on again so that the old button is unbound and |
96ca8702243e
(mouse-wheel-down-button, mouse-wheel-up-button):
Gerd Moellmann <gerd@gnu.org>
parents:
33227
diff
changeset
|
48 ;; new button is bound to mwheel-scroll. |
96ca8702243e
(mouse-wheel-down-button, mouse-wheel-up-button):
Gerd Moellmann <gerd@gnu.org>
parents:
33227
diff
changeset
|
49 |
96ca8702243e
(mouse-wheel-down-button, mouse-wheel-up-button):
Gerd Moellmann <gerd@gnu.org>
parents:
33227
diff
changeset
|
50 (defun mouse-wheel-change-button (var button) |
46066
99487f98aaa7
(mouse-wheel-change-button): Deactivate before changing.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
46001
diff
changeset
|
51 (let ((active mouse-wheel-mode)) |
99487f98aaa7
(mouse-wheel-change-button): Deactivate before changing.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
46001
diff
changeset
|
52 ;; Deactivate before changing the setting. |
99487f98aaa7
(mouse-wheel-change-button): Deactivate before changing.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
46001
diff
changeset
|
53 (when active (mouse-wheel-mode -1)) |
99487f98aaa7
(mouse-wheel-change-button): Deactivate before changing.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
46001
diff
changeset
|
54 (set-default var button) |
99487f98aaa7
(mouse-wheel-change-button): Deactivate before changing.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
46001
diff
changeset
|
55 (when active (mouse-wheel-mode 1)))) |
38582
96ca8702243e
(mouse-wheel-down-button, mouse-wheel-up-button):
Gerd Moellmann <gerd@gnu.org>
parents:
33227
diff
changeset
|
56 |
49617
78d4c6395dec
(mouse-wheel-down-button, mouse-wheel-up-button, mouse-wheel-click-button): Add
Juanma Barranquero <lekktu@gmail.com>
parents:
49597
diff
changeset
|
57 (defvar mouse-wheel-down-button 4) |
78d4c6395dec
(mouse-wheel-down-button, mouse-wheel-up-button, mouse-wheel-click-button): Add
Juanma Barranquero <lekktu@gmail.com>
parents:
49597
diff
changeset
|
58 (make-obsolete-variable 'mouse-wheel-down-button |
78d4c6395dec
(mouse-wheel-down-button, mouse-wheel-up-button, mouse-wheel-click-button): Add
Juanma Barranquero <lekktu@gmail.com>
parents:
49597
diff
changeset
|
59 'mouse-wheel-down-event) |
46066
99487f98aaa7
(mouse-wheel-change-button): Deactivate before changing.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
46001
diff
changeset
|
60 (defcustom mouse-wheel-down-event |
99487f98aaa7
(mouse-wheel-change-button): Deactivate before changing.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
46001
diff
changeset
|
61 ;; In the latest versions of XEmacs, we could just use mouse-%s as well. |
66682
87a503bf036e
(mouse-wheel-down-event, mouse-wheel-up-event): Undo previous change.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66647
diff
changeset
|
62 (if (memq window-system '(w32 mac)) |
51387
97d539e7d0d1
(mouse-wheel-down-event, mouse-wheel-up-event):
Jason Rumney <jasonr@gnu.org>
parents:
51271
diff
changeset
|
63 'wheel-up |
97d539e7d0d1
(mouse-wheel-down-event, mouse-wheel-up-event):
Jason Rumney <jasonr@gnu.org>
parents:
51271
diff
changeset
|
64 (intern (format (if (featurep 'xemacs) "button%s" "mouse-%s") |
97d539e7d0d1
(mouse-wheel-down-event, mouse-wheel-up-event):
Jason Rumney <jasonr@gnu.org>
parents:
51271
diff
changeset
|
65 mouse-wheel-down-button))) |
46066
99487f98aaa7
(mouse-wheel-change-button): Deactivate before changing.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
46001
diff
changeset
|
66 "Event used for scrolling down." |
38582
96ca8702243e
(mouse-wheel-down-button, mouse-wheel-up-button):
Gerd Moellmann <gerd@gnu.org>
parents:
33227
diff
changeset
|
67 :group 'mouse |
46066
99487f98aaa7
(mouse-wheel-change-button): Deactivate before changing.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
46001
diff
changeset
|
68 :type 'symbol |
38582
96ca8702243e
(mouse-wheel-down-button, mouse-wheel-up-button):
Gerd Moellmann <gerd@gnu.org>
parents:
33227
diff
changeset
|
69 :set 'mouse-wheel-change-button) |
96ca8702243e
(mouse-wheel-down-button, mouse-wheel-up-button):
Gerd Moellmann <gerd@gnu.org>
parents:
33227
diff
changeset
|
70 |
49617
78d4c6395dec
(mouse-wheel-down-button, mouse-wheel-up-button, mouse-wheel-click-button): Add
Juanma Barranquero <lekktu@gmail.com>
parents:
49597
diff
changeset
|
71 (defvar mouse-wheel-up-button 5) |
78d4c6395dec
(mouse-wheel-down-button, mouse-wheel-up-button, mouse-wheel-click-button): Add
Juanma Barranquero <lekktu@gmail.com>
parents:
49597
diff
changeset
|
72 (make-obsolete-variable 'mouse-wheel-up-button |
78d4c6395dec
(mouse-wheel-down-button, mouse-wheel-up-button, mouse-wheel-click-button): Add
Juanma Barranquero <lekktu@gmail.com>
parents:
49597
diff
changeset
|
73 'mouse-wheel-up-event) |
46066
99487f98aaa7
(mouse-wheel-change-button): Deactivate before changing.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
46001
diff
changeset
|
74 (defcustom mouse-wheel-up-event |
99487f98aaa7
(mouse-wheel-change-button): Deactivate before changing.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
46001
diff
changeset
|
75 ;; In the latest versions of XEmacs, we could just use mouse-%s as well. |
66682
87a503bf036e
(mouse-wheel-down-event, mouse-wheel-up-event): Undo previous change.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66647
diff
changeset
|
76 (if (memq window-system '(w32 mac)) |
51387
97d539e7d0d1
(mouse-wheel-down-event, mouse-wheel-up-event):
Jason Rumney <jasonr@gnu.org>
parents:
51271
diff
changeset
|
77 'wheel-down |
97d539e7d0d1
(mouse-wheel-down-event, mouse-wheel-up-event):
Jason Rumney <jasonr@gnu.org>
parents:
51271
diff
changeset
|
78 (intern (format (if (featurep 'xemacs) "button%s" "mouse-%s") |
97d539e7d0d1
(mouse-wheel-down-event, mouse-wheel-up-event):
Jason Rumney <jasonr@gnu.org>
parents:
51271
diff
changeset
|
79 mouse-wheel-up-button))) |
68788
c78868572d4f
(mouse-wheel-up-event): Doc fix.
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
80 "Event used for scrolling up." |
38582
96ca8702243e
(mouse-wheel-down-button, mouse-wheel-up-button):
Gerd Moellmann <gerd@gnu.org>
parents:
33227
diff
changeset
|
81 :group 'mouse |
46066
99487f98aaa7
(mouse-wheel-change-button): Deactivate before changing.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
46001
diff
changeset
|
82 :type 'symbol |
38582
96ca8702243e
(mouse-wheel-down-button, mouse-wheel-up-button):
Gerd Moellmann <gerd@gnu.org>
parents:
33227
diff
changeset
|
83 :set 'mouse-wheel-change-button) |
96ca8702243e
(mouse-wheel-down-button, mouse-wheel-up-button):
Gerd Moellmann <gerd@gnu.org>
parents:
33227
diff
changeset
|
84 |
49617
78d4c6395dec
(mouse-wheel-down-button, mouse-wheel-up-button, mouse-wheel-click-button): Add
Juanma Barranquero <lekktu@gmail.com>
parents:
49597
diff
changeset
|
85 (defvar mouse-wheel-click-button 2) |
78d4c6395dec
(mouse-wheel-down-button, mouse-wheel-up-button, mouse-wheel-click-button): Add
Juanma Barranquero <lekktu@gmail.com>
parents:
49597
diff
changeset
|
86 (make-obsolete-variable 'mouse-wheel-click-button |
78d4c6395dec
(mouse-wheel-down-button, mouse-wheel-up-button, mouse-wheel-click-button): Add
Juanma Barranquero <lekktu@gmail.com>
parents:
49597
diff
changeset
|
87 'mouse-wheel-click-event) |
48574
3e3b1f1265f5
Avoid accidental yanking of text while scrolling with
Kim F. Storm <storm@cua.dk>
parents:
48253
diff
changeset
|
88 (defcustom mouse-wheel-click-event |
3e3b1f1265f5
Avoid accidental yanking of text while scrolling with
Kim F. Storm <storm@cua.dk>
parents:
48253
diff
changeset
|
89 ;; In the latest versions of XEmacs, we could just use mouse-%s as well. |
3e3b1f1265f5
Avoid accidental yanking of text while scrolling with
Kim F. Storm <storm@cua.dk>
parents:
48253
diff
changeset
|
90 (intern (format (if (featurep 'xemacs) "button%s" "mouse-%s") |
3e3b1f1265f5
Avoid accidental yanking of text while scrolling with
Kim F. Storm <storm@cua.dk>
parents:
48253
diff
changeset
|
91 mouse-wheel-click-button)) |
3e3b1f1265f5
Avoid accidental yanking of text while scrolling with
Kim F. Storm <storm@cua.dk>
parents:
48253
diff
changeset
|
92 "Event that should be temporarily inhibited after mouse scrolling. |
3e3b1f1265f5
Avoid accidental yanking of text while scrolling with
Kim F. Storm <storm@cua.dk>
parents:
48253
diff
changeset
|
93 The mouse wheel is typically on the mouse-2 button, so it may easily |
68882
b7113ead6c0a
(mouse-wheel-click-event, mouse-wheel-mode): Fix typos in docstrings.
Juanma Barranquero <lekktu@gmail.com>
parents:
68788
diff
changeset
|
94 happen that text is accidentally yanked into the buffer when |
48574
3e3b1f1265f5
Avoid accidental yanking of text while scrolling with
Kim F. Storm <storm@cua.dk>
parents:
48253
diff
changeset
|
95 scrolling with the mouse wheel. To prevent that, this variable can be |
3e3b1f1265f5
Avoid accidental yanking of text while scrolling with
Kim F. Storm <storm@cua.dk>
parents:
48253
diff
changeset
|
96 set to the event sent when clicking on the mouse wheel button." |
3e3b1f1265f5
Avoid accidental yanking of text while scrolling with
Kim F. Storm <storm@cua.dk>
parents:
48253
diff
changeset
|
97 :group 'mouse |
3e3b1f1265f5
Avoid accidental yanking of text while scrolling with
Kim F. Storm <storm@cua.dk>
parents:
48253
diff
changeset
|
98 :type 'symbol |
3e3b1f1265f5
Avoid accidental yanking of text while scrolling with
Kim F. Storm <storm@cua.dk>
parents:
48253
diff
changeset
|
99 :set 'mouse-wheel-change-button) |
3e3b1f1265f5
Avoid accidental yanking of text while scrolling with
Kim F. Storm <storm@cua.dk>
parents:
48253
diff
changeset
|
100 |
3e3b1f1265f5
Avoid accidental yanking of text while scrolling with
Kim F. Storm <storm@cua.dk>
parents:
48253
diff
changeset
|
101 (defcustom mouse-wheel-inhibit-click-time 0.35 |
3e3b1f1265f5
Avoid accidental yanking of text while scrolling with
Kim F. Storm <storm@cua.dk>
parents:
48253
diff
changeset
|
102 "Time in seconds to inhibit clicking on mouse wheel button after scroll." |
3e3b1f1265f5
Avoid accidental yanking of text while scrolling with
Kim F. Storm <storm@cua.dk>
parents:
48253
diff
changeset
|
103 :group 'mouse |
48593
338527f8ef91
(mouse-wheel-inhibit-click-time): Fix custom type.
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48574
diff
changeset
|
104 :type 'number) |
48574
3e3b1f1265f5
Avoid accidental yanking of text while scrolling with
Kim F. Storm <storm@cua.dk>
parents:
48253
diff
changeset
|
105 |
45994
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
106 (defcustom mouse-wheel-scroll-amount '(5 ((shift) . 1) ((control) . nil)) |
26398
7eb699cb9ef2
Initial import from perry
William M. Perry <wmperry@aventail.com>
parents:
diff
changeset
|
107 "Amount to scroll windows by when spinning the mouse wheel. |
46001
5133c42d55cc
(mouse-wheel-scroll-amount, mwheel-scroll, mouse-wheel-mode):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45994
diff
changeset
|
108 This is an alist mapping the modifier key to the amount to scroll when |
5133c42d55cc
(mouse-wheel-scroll-amount, mwheel-scroll, mouse-wheel-mode):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45994
diff
changeset
|
109 the wheel is moved with the modifier key depressed. |
5133c42d55cc
(mouse-wheel-scroll-amount, mwheel-scroll, mouse-wheel-mode):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45994
diff
changeset
|
110 Elements of the list have the form (MODIFIERS . AMOUNT) or just AMOUNT if |
5133c42d55cc
(mouse-wheel-scroll-amount, mwheel-scroll, mouse-wheel-mode):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45994
diff
changeset
|
111 MODIFIERS is nil. |
26398
7eb699cb9ef2
Initial import from perry
William M. Perry <wmperry@aventail.com>
parents:
diff
changeset
|
112 |
50872
ba2845537409
(mouse-wheel-scroll-amount): Don't quote nil and t in docstrings.
Juanma Barranquero <lekktu@gmail.com>
parents:
49617
diff
changeset
|
113 AMOUNT should be the number of lines to scroll, or nil for near full |
46001
5133c42d55cc
(mouse-wheel-scroll-amount, mwheel-scroll, mouse-wheel-mode):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45994
diff
changeset
|
114 screen. It can also be a floating point number, specifying the fraction of |
5133c42d55cc
(mouse-wheel-scroll-amount, mwheel-scroll, mouse-wheel-mode):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45994
diff
changeset
|
115 a full screen to scroll. A near full screen is `next-screen-context-lines' |
5133c42d55cc
(mouse-wheel-scroll-amount, mwheel-scroll, mouse-wheel-mode):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45994
diff
changeset
|
116 less than a full screen." |
26398
7eb699cb9ef2
Initial import from perry
William M. Perry <wmperry@aventail.com>
parents:
diff
changeset
|
117 :group 'mouse |
45994
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
118 :type '(cons |
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
119 (choice :tag "Normal" |
26398
7eb699cb9ef2
Initial import from perry
William M. Perry <wmperry@aventail.com>
parents:
diff
changeset
|
120 (const :tag "Full screen" :value nil) |
45994
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
121 (integer :tag "Specific # of lines") |
48772
baf774b3f991
(mouse-wheel-scroll-amount): Revert previous change -
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48609
diff
changeset
|
122 (float :tag "Fraction of window") |
46001
5133c42d55cc
(mouse-wheel-scroll-amount, mwheel-scroll, mouse-wheel-mode):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45994
diff
changeset
|
123 (cons |
5133c42d55cc
(mouse-wheel-scroll-amount, mwheel-scroll, mouse-wheel-mode):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45994
diff
changeset
|
124 (repeat (choice :tag "modifier" |
5133c42d55cc
(mouse-wheel-scroll-amount, mwheel-scroll, mouse-wheel-mode):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45994
diff
changeset
|
125 (const alt) (const control) (const hyper) |
5133c42d55cc
(mouse-wheel-scroll-amount, mwheel-scroll, mouse-wheel-mode):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45994
diff
changeset
|
126 (const meta) (const shift) (const super))) |
5133c42d55cc
(mouse-wheel-scroll-amount, mwheel-scroll, mouse-wheel-mode):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45994
diff
changeset
|
127 (choice :tag "scroll amount" |
5133c42d55cc
(mouse-wheel-scroll-amount, mwheel-scroll, mouse-wheel-mode):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45994
diff
changeset
|
128 (const :tag "Full screen" :value nil) |
5133c42d55cc
(mouse-wheel-scroll-amount, mwheel-scroll, mouse-wheel-mode):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45994
diff
changeset
|
129 (integer :tag "Specific # of lines") |
48772
baf774b3f991
(mouse-wheel-scroll-amount): Revert previous change -
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48609
diff
changeset
|
130 (float :tag "Fraction of window")))) |
45994
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
131 (repeat |
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
132 (cons |
46001
5133c42d55cc
(mouse-wheel-scroll-amount, mwheel-scroll, mouse-wheel-mode):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45994
diff
changeset
|
133 (repeat (choice :tag "modifier" |
5133c42d55cc
(mouse-wheel-scroll-amount, mwheel-scroll, mouse-wheel-mode):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45994
diff
changeset
|
134 (const alt) (const control) (const hyper) |
45994
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
135 (const meta) (const shift) (const super))) |
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
136 (choice :tag "scroll amount" |
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
137 (const :tag "Full screen" :value nil) |
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
138 (integer :tag "Specific # of lines") |
48772
baf774b3f991
(mouse-wheel-scroll-amount): Revert previous change -
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48609
diff
changeset
|
139 (float :tag "Fraction of window")))))) |
45994
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
140 |
58160
4ffb29088324
(mouse-wheel-progressive-speed): Fix typo in name.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
53578
diff
changeset
|
141 (defcustom mouse-wheel-progressive-speed t |
45994
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
142 "If non-nil, the faster the user moves the wheel, the faster the scrolling. |
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
143 Note that this has no effect when `mouse-wheel-scroll-amount' specifies |
46001
5133c42d55cc
(mouse-wheel-scroll-amount, mwheel-scroll, mouse-wheel-mode):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45994
diff
changeset
|
144 a \"near full screen\" scroll or when the mouse wheel sends key instead |
5133c42d55cc
(mouse-wheel-scroll-amount, mwheel-scroll, mouse-wheel-mode):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45994
diff
changeset
|
145 of button events." |
45994
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
146 :group 'mouse |
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
147 :type 'boolean) |
26398
7eb699cb9ef2
Initial import from perry
William M. Perry <wmperry@aventail.com>
parents:
diff
changeset
|
148 |
46066
99487f98aaa7
(mouse-wheel-change-button): Deactivate before changing.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
46001
diff
changeset
|
149 (defcustom mouse-wheel-follow-mouse t |
26398
7eb699cb9ef2
Initial import from perry
William M. Perry <wmperry@aventail.com>
parents:
diff
changeset
|
150 "Whether the mouse wheel should scroll the window that the mouse is over. |
46001
5133c42d55cc
(mouse-wheel-scroll-amount, mwheel-scroll, mouse-wheel-mode):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45994
diff
changeset
|
151 This can be slightly disconcerting, but some people prefer it." |
26398
7eb699cb9ef2
Initial import from perry
William M. Perry <wmperry@aventail.com>
parents:
diff
changeset
|
152 :group 'mouse |
7eb699cb9ef2
Initial import from perry
William M. Perry <wmperry@aventail.com>
parents:
diff
changeset
|
153 :type 'boolean) |
7eb699cb9ef2
Initial import from perry
William M. Perry <wmperry@aventail.com>
parents:
diff
changeset
|
154 |
45994
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
155 (if (not (fboundp 'event-button)) |
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
156 (defun mwheel-event-button (event) |
46066
99487f98aaa7
(mouse-wheel-change-button): Deactivate before changing.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
46001
diff
changeset
|
157 (let ((x (event-basic-type event))) |
45994
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
158 ;; Map mouse-wheel events to appropriate buttons |
46066
99487f98aaa7
(mouse-wheel-change-button): Deactivate before changing.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
46001
diff
changeset
|
159 (if (eq 'mouse-wheel x) |
45994
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
160 (let ((amount (car (cdr (cdr (cdr event)))))) |
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
161 (if (< amount 0) |
46066
99487f98aaa7
(mouse-wheel-change-button): Deactivate before changing.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
46001
diff
changeset
|
162 mouse-wheel-up-event |
99487f98aaa7
(mouse-wheel-change-button): Deactivate before changing.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
46001
diff
changeset
|
163 mouse-wheel-down-event)) |
99487f98aaa7
(mouse-wheel-change-button): Deactivate before changing.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
46001
diff
changeset
|
164 x))) |
47114
b0e4184605e5
* ibuffer.el (ibuffer-update): Use `minibufferp'. Expand `caddr'.
John Paul Wallington <jpw@pobox.com>
parents:
46066
diff
changeset
|
165 (fset 'mwheel-event-button 'event-button)) |
45994
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
166 |
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
167 (if (not (fboundp 'event-window)) |
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
168 (defun mwheel-event-window (event) |
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
169 (posn-window (event-start event))) |
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
170 (fset 'mwheel-event-window 'event-window)) |
26398
7eb699cb9ef2
Initial import from perry
William M. Perry <wmperry@aventail.com>
parents:
diff
changeset
|
171 |
48574
3e3b1f1265f5
Avoid accidental yanking of text while scrolling with
Kim F. Storm <storm@cua.dk>
parents:
48253
diff
changeset
|
172 (defvar mwheel-inhibit-click-event-timer nil |
3e3b1f1265f5
Avoid accidental yanking of text while scrolling with
Kim F. Storm <storm@cua.dk>
parents:
48253
diff
changeset
|
173 "Timer running while mouse wheel click event is inhibited.") |
3e3b1f1265f5
Avoid accidental yanking of text while scrolling with
Kim F. Storm <storm@cua.dk>
parents:
48253
diff
changeset
|
174 |
3e3b1f1265f5
Avoid accidental yanking of text while scrolling with
Kim F. Storm <storm@cua.dk>
parents:
48253
diff
changeset
|
175 (defun mwheel-inhibit-click-timeout () |
3e3b1f1265f5
Avoid accidental yanking of text while scrolling with
Kim F. Storm <storm@cua.dk>
parents:
48253
diff
changeset
|
176 "Handler for `mwheel-inhibit-click-event-timer'." |
3e3b1f1265f5
Avoid accidental yanking of text while scrolling with
Kim F. Storm <storm@cua.dk>
parents:
48253
diff
changeset
|
177 (setq mwheel-inhibit-click-event-timer nil) |
3e3b1f1265f5
Avoid accidental yanking of text while scrolling with
Kim F. Storm <storm@cua.dk>
parents:
48253
diff
changeset
|
178 (remove-hook 'pre-command-hook 'mwheel-filter-click-events)) |
3e3b1f1265f5
Avoid accidental yanking of text while scrolling with
Kim F. Storm <storm@cua.dk>
parents:
48253
diff
changeset
|
179 |
3e3b1f1265f5
Avoid accidental yanking of text while scrolling with
Kim F. Storm <storm@cua.dk>
parents:
48253
diff
changeset
|
180 (defun mwheel-filter-click-events () |
3e3b1f1265f5
Avoid accidental yanking of text while scrolling with
Kim F. Storm <storm@cua.dk>
parents:
48253
diff
changeset
|
181 "Discard `mouse-wheel-click-event' while scrolling the mouse." |
3e3b1f1265f5
Avoid accidental yanking of text while scrolling with
Kim F. Storm <storm@cua.dk>
parents:
48253
diff
changeset
|
182 (if (eq (event-basic-type last-input-event) mouse-wheel-click-event) |
3e3b1f1265f5
Avoid accidental yanking of text while scrolling with
Kim F. Storm <storm@cua.dk>
parents:
48253
diff
changeset
|
183 (setq this-command 'ignore))) |
3e3b1f1265f5
Avoid accidental yanking of text while scrolling with
Kim F. Storm <storm@cua.dk>
parents:
48253
diff
changeset
|
184 |
45994
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
185 (defun mwheel-scroll (event) |
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
186 "Scroll up or down according to the EVENT. |
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
187 This should only be bound to mouse buttons 4 and 5." |
46066
99487f98aaa7
(mouse-wheel-change-button): Deactivate before changing.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
46001
diff
changeset
|
188 (interactive (list last-input-event)) |
45994
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
189 (let* ((curwin (if mouse-wheel-follow-mouse |
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
190 (prog1 |
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
191 (selected-window) |
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
192 (select-window (mwheel-event-window event))))) |
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
193 (mods |
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
194 (delq 'click (delq 'double (delq 'triple (event-modifiers event))))) |
46001
5133c42d55cc
(mouse-wheel-scroll-amount, mwheel-scroll, mouse-wheel-mode):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45994
diff
changeset
|
195 (amt (assoc mods mouse-wheel-scroll-amount))) |
5133c42d55cc
(mouse-wheel-scroll-amount, mwheel-scroll, mouse-wheel-mode):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45994
diff
changeset
|
196 ;; Extract the actual amount or find the element that has no modifiers. |
5133c42d55cc
(mouse-wheel-scroll-amount, mwheel-scroll, mouse-wheel-mode):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45994
diff
changeset
|
197 (if amt (setq amt (cdr amt)) |
5133c42d55cc
(mouse-wheel-scroll-amount, mwheel-scroll, mouse-wheel-mode):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45994
diff
changeset
|
198 (let ((list-elt mouse-wheel-scroll-amount)) |
5133c42d55cc
(mouse-wheel-scroll-amount, mwheel-scroll, mouse-wheel-mode):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45994
diff
changeset
|
199 (while (consp (setq amt (pop list-elt)))))) |
45994
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
200 (if (floatp amt) (setq amt (1+ (truncate (* amt (window-height)))))) |
58160
4ffb29088324
(mouse-wheel-progressive-speed): Fix typo in name.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
53578
diff
changeset
|
201 (when (and mouse-wheel-progressive-speed (numberp amt)) |
45994
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
202 ;; When the double-mouse-N comes in, a mouse-N has been executed already, |
46066
99487f98aaa7
(mouse-wheel-change-button): Deactivate before changing.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
46001
diff
changeset
|
203 ;; So by adding things up we get a squaring up (1, 3, 6, 10, 15, ...). |
45994
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
204 (setq amt (* amt (event-click-count event)))) |
26398
7eb699cb9ef2
Initial import from perry
William M. Perry <wmperry@aventail.com>
parents:
diff
changeset
|
205 (unwind-protect |
45994
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
206 (let ((button (mwheel-event-button event))) |
46066
99487f98aaa7
(mouse-wheel-change-button): Deactivate before changing.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
46001
diff
changeset
|
207 (cond ((eq button mouse-wheel-down-event) (scroll-down amt)) |
99487f98aaa7
(mouse-wheel-change-button): Deactivate before changing.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
46001
diff
changeset
|
208 ((eq button mouse-wheel-up-event) (scroll-up amt)) |
45994
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
209 (t (error "Bad binding in mwheel-scroll")))) |
48574
3e3b1f1265f5
Avoid accidental yanking of text while scrolling with
Kim F. Storm <storm@cua.dk>
parents:
48253
diff
changeset
|
210 (if curwin (select-window curwin)))) |
3e3b1f1265f5
Avoid accidental yanking of text while scrolling with
Kim F. Storm <storm@cua.dk>
parents:
48253
diff
changeset
|
211 (when (and mouse-wheel-click-event mouse-wheel-inhibit-click-time) |
3e3b1f1265f5
Avoid accidental yanking of text while scrolling with
Kim F. Storm <storm@cua.dk>
parents:
48253
diff
changeset
|
212 (if mwheel-inhibit-click-event-timer |
3e3b1f1265f5
Avoid accidental yanking of text while scrolling with
Kim F. Storm <storm@cua.dk>
parents:
48253
diff
changeset
|
213 (cancel-timer mwheel-inhibit-click-event-timer) |
3e3b1f1265f5
Avoid accidental yanking of text while scrolling with
Kim F. Storm <storm@cua.dk>
parents:
48253
diff
changeset
|
214 (add-hook 'pre-command-hook 'mwheel-filter-click-events)) |
49597
e88404e8f2cf
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48772
diff
changeset
|
215 (setq mwheel-inhibit-click-event-timer |
48574
3e3b1f1265f5
Avoid accidental yanking of text while scrolling with
Kim F. Storm <storm@cua.dk>
parents:
48253
diff
changeset
|
216 (run-with-timer mouse-wheel-inhibit-click-time nil |
3e3b1f1265f5
Avoid accidental yanking of text while scrolling with
Kim F. Storm <storm@cua.dk>
parents:
48253
diff
changeset
|
217 'mwheel-inhibit-click-timeout)))) |
32867
553975760fe9
(mouse-wheel-mode): New global minor mode.
Miles Bader <miles@gnu.org>
parents:
26410
diff
changeset
|
218 |
26398
7eb699cb9ef2
Initial import from perry
William M. Perry <wmperry@aventail.com>
parents:
diff
changeset
|
219 ;;;###autoload |
32867
553975760fe9
(mouse-wheel-mode): New global minor mode.
Miles Bader <miles@gnu.org>
parents:
26410
diff
changeset
|
220 (define-minor-mode mouse-wheel-mode |
553975760fe9
(mouse-wheel-mode): New global minor mode.
Miles Bader <miles@gnu.org>
parents:
26410
diff
changeset
|
221 "Toggle mouse wheel support. |
553975760fe9
(mouse-wheel-mode): New global minor mode.
Miles Bader <miles@gnu.org>
parents:
26410
diff
changeset
|
222 With prefix argument ARG, turn on if positive, otherwise off. |
68882
b7113ead6c0a
(mouse-wheel-click-event, mouse-wheel-mode): Fix typos in docstrings.
Juanma Barranquero <lekktu@gmail.com>
parents:
68788
diff
changeset
|
223 Return non-nil if the new state is enabled." |
32867
553975760fe9
(mouse-wheel-mode): New global minor mode.
Miles Bader <miles@gnu.org>
parents:
26410
diff
changeset
|
224 :global t |
553975760fe9
(mouse-wheel-mode): New global minor mode.
Miles Bader <miles@gnu.org>
parents:
26410
diff
changeset
|
225 :group 'mouse |
46066
99487f98aaa7
(mouse-wheel-change-button): Deactivate before changing.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
46001
diff
changeset
|
226 (let* ((dn mouse-wheel-down-event) |
99487f98aaa7
(mouse-wheel-change-button): Deactivate before changing.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
46001
diff
changeset
|
227 (up mouse-wheel-up-event) |
45994
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
228 (keys |
46001
5133c42d55cc
(mouse-wheel-scroll-amount, mwheel-scroll, mouse-wheel-mode):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45994
diff
changeset
|
229 (nconc (mapcar (lambda (amt) `[(,@(if (consp amt) (car amt)) ,up)]) |
5133c42d55cc
(mouse-wheel-scroll-amount, mwheel-scroll, mouse-wheel-mode):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45994
diff
changeset
|
230 mouse-wheel-scroll-amount) |
5133c42d55cc
(mouse-wheel-scroll-amount, mwheel-scroll, mouse-wheel-mode):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45994
diff
changeset
|
231 (mapcar (lambda (amt) `[(,@(if (consp amt) (car amt)) ,dn)]) |
5133c42d55cc
(mouse-wheel-scroll-amount, mwheel-scroll, mouse-wheel-mode):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45994
diff
changeset
|
232 mouse-wheel-scroll-amount)))) |
45994
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
233 ;; This condition-case is here because Emacs 19 will throw an error |
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
234 ;; if you try to define a key that it does not know about. I for one |
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
235 ;; prefer to just unconditionally do a mwheel-install in my .emacs, so |
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
236 ;; that if the wheeled-mouse is there, it just works, and this way it |
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
237 ;; doesn't yell at me if I'm on my laptop or another machine, etc. |
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
238 (condition-case () |
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
239 (dolist (key keys) |
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
240 (cond (mouse-wheel-mode |
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
241 (global-set-key key 'mwheel-scroll)) |
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
242 ((eq (lookup-key (current-global-map) key) 'mwheel-scroll) |
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
243 (global-unset-key key)))) |
65253ed28734
Undo last patch for now.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45947
diff
changeset
|
244 (error nil)))) |
32867
553975760fe9
(mouse-wheel-mode): New global minor mode.
Miles Bader <miles@gnu.org>
parents:
26410
diff
changeset
|
245 |
553975760fe9
(mouse-wheel-mode): New global minor mode.
Miles Bader <miles@gnu.org>
parents:
26410
diff
changeset
|
246 ;;; Compatibility entry point |
553975760fe9
(mouse-wheel-mode): New global minor mode.
Miles Bader <miles@gnu.org>
parents:
26410
diff
changeset
|
247 ;;;###autoload |
553975760fe9
(mouse-wheel-mode): New global minor mode.
Miles Bader <miles@gnu.org>
parents:
26410
diff
changeset
|
248 (defun mwheel-install (&optional uninstall) |
553975760fe9
(mouse-wheel-mode): New global minor mode.
Miles Bader <miles@gnu.org>
parents:
26410
diff
changeset
|
249 "Enable mouse wheel support." |
46066
99487f98aaa7
(mouse-wheel-change-button): Deactivate before changing.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
46001
diff
changeset
|
250 (mouse-wheel-mode (if uninstall -1 1))) |
32867
553975760fe9
(mouse-wheel-mode): New global minor mode.
Miles Bader <miles@gnu.org>
parents:
26410
diff
changeset
|
251 |
26398
7eb699cb9ef2
Initial import from perry
William M. Perry <wmperry@aventail.com>
parents:
diff
changeset
|
252 (provide 'mwheel) |
7eb699cb9ef2
Initial import from perry
William M. Perry <wmperry@aventail.com>
parents:
diff
changeset
|
253 |
58160
4ffb29088324
(mouse-wheel-progressive-speed): Fix typo in name.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
53578
diff
changeset
|
254 ;; arch-tag: 50ed00e7-3686-4b7a-8037-fb31aa5c237f |
26398
7eb699cb9ef2
Initial import from perry
William M. Perry <wmperry@aventail.com>
parents:
diff
changeset
|
255 ;;; mwheel.el ends here |