comparison lisp/hyperbole/hmouse-reg.el @ 24:4103f0995bd7 r19-15b95

Import from CVS: tag r19-15b95
author cvs
date Mon, 13 Aug 2007 08:51:03 +0200
parents 376386a54a3c
children 131b0175ea99
comparison
equal deleted inserted replaced
23:0edd3412f124 24:4103f0995bd7
4 ;; SUMMARY: System-dependent Smart Mouse Key bindings (no shift key). 4 ;; SUMMARY: System-dependent Smart Mouse Key bindings (no shift key).
5 ;; USAGE: GNU Emacs Lisp Library 5 ;; USAGE: GNU Emacs Lisp Library
6 ;; KEYWORDS: hypermedia, mouse 6 ;; KEYWORDS: hypermedia, mouse
7 ;; 7 ;;
8 ;; AUTHOR: Bob Weiner 8 ;; AUTHOR: Bob Weiner
9 ;; ORG: Brown U. 9 ;; ORG: InfoDock Associates
10 ;; 10 ;;
11 ;; ORIG-DATE: 3-Sep-91 at 21:40:58 11 ;; ORIG-DATE: 3-Sep-91 at 21:40:58
12 ;; LAST-MOD: 14-Sep-95 at 18:39:04 by Bob Weiner 12 ;; LAST-MOD: 21-Feb-97 at 18:02:33 by Bob Weiner
13 ;;
14 ;; This file is part of Hyperbole.
15 ;; Available for use and distribution under the same terms as GNU Emacs.
16 ;;
17 ;; Copyright (C) 1991-1997, Free Software Foundation, Inc.
18 ;; Developed with support from Motorola Inc.
19
13 ;;; ************************************************************************ 20 ;;; ************************************************************************
14 ;;; Public functions 21 ;;; Public functions
15 ;;; ************************************************************************ 22 ;;; ************************************************************************
16 23
17 (defun hmouse-get-bindings () 24 (defun hmouse-get-bindings ()
18 "Returns list of bindings for mouse keys prior to their use as Smart Keys." 25 "Returns list of bindings for mouse keys prior to their use as Smart Keys."
19 (eval 26 ;; Do nothing when running in batch mode.
20 (cdr (assoc 27 (if noninteractive
21 ;; Get mouse bindings under Emacs 19 or XEmacs, even if not under a 28 nil
22 ;; window system since it can have frames on ttys and windowed 29 (eval
23 ;; displays at the same time. 30 (cdr (assoc
24 (or hyperb:window-system 31 ;; Get mouse bindings under Emacs 19 or XEmacs, even if not under a
25 (and (not noninteractive) hyperb:xemacs-p "lemacs") 32 ;; window system since it can have frames on ttys and windowed
26 (and (not noninteractive) hyperb:emacs19-p "emacs19")) 33 ;; displays at the same time.
27 '(("emacs19" . 34 (or (and hyperb:xemacs-p "lemacs")
28 (mapcar (function 35 (and hyperb:emacs19-p "emacs19")
29 (lambda (key) (cons key (lookup-key global-map key)))) 36 hyperb:window-system)
30 (if (memq window-system '(ns dps)) 37 '(("emacs19" .
31 ;; NEXTSTEP offers only 2 mouse buttons which we use 38 (mapcar (function
32 ;; as the Smart Keys. We move the mouse-set-point 39 (lambda (key) (cons key (lookup-key global-map key))))
33 ;; command to shift-left. 40 (if (memq window-system '(ns dps))
34 '([down-mouse-1] [mouse-1] [down-mouse-2] [mouse-2] 41 ;; NEXTSTEP offers only 2 mouse buttons which we use
35 [double-mouse-1] [triple-mouse-1] 42 ;; as the Smart Keys. We move the mouse-set-point
43 ;; command to shift-left.
44 '([down-mouse-1] [mouse-1] [down-mouse-2] [mouse-2]
45 [double-mouse-1] [triple-mouse-1]
46 [double-mouse-2] [triple-mouse-2]
47 [vertical-line down-mouse-1] [vertical-line mouse-1]
48 [vertical-line down-mouse-2] [vertical-line mouse-2]
49 [mode-line down-mouse-1] [mode-line mouse-1]
50 [mode-line down-mouse-2] [mode-line mouse-2]
51 [S-mouse-1]
52 )
53 ;; X
54 '([down-mouse-2] [mouse-2] [down-mouse-3] [mouse-3]
36 [double-mouse-2] [triple-mouse-2] 55 [double-mouse-2] [triple-mouse-2]
37 [vertical-line down-mouse-1] [vertical-line mouse-1] 56 [double-mouse-3] [triple-mouse-3]
38 [vertical-line down-mouse-2] [vertical-line mouse-2] 57 [vertical-line down-mouse-2] [vertical-line mouse-2]
39 [mode-line down-mouse-1] [mode-line mouse-1] 58 [vertical-line down-mouse-3] [vertical-line mouse-3]
40 [mode-line down-mouse-2] [mode-line mouse-2] 59 [mode-line down-mouse-2] [mode-line mouse-2]
41 [S-mouse-1] 60 [mode-line down-mouse-3] [mode-line mouse-3]
42 ) 61 ))))
43 ;; X 62 ("lemacs" .
44 '([down-mouse-2] [mouse-2] [down-mouse-3] [mouse-3] 63 (nconc
45 [double-mouse-2] [triple-mouse-2] 64 (mapcar (function
46 [double-mouse-3] [triple-mouse-3] 65 (lambda (key)
47 [vertical-line down-mouse-2] [vertical-line mouse-2] 66 (cons key (lookup-key global-map key))))
48 [vertical-line down-mouse-3] [vertical-line mouse-3] 67 '([button2] [button2up] [button3] [button3up]))
49 [mode-line down-mouse-2] [mode-line mouse-2] 68 (if (boundp 'mode-line-map)
50 [mode-line down-mouse-3] [mode-line mouse-3] 69 (mapcar (function
51 )))) 70 (lambda (key)
52 ("lemacs" . 71 (cons key (lookup-key mode-line-map key))))
53 (nconc 72 '([button3] [button3up])))))
54 (mapcar (function 73 ("xterm" .
55 (lambda (key) 74 (mapcar (function
56 (cons key (lookup-key global-map key)))) 75 (lambda (key) (cons key (lookup-key mouse-map key))))
57 '([button2] [button2up] [button3] [button3up])) 76 (list x-button-middle x-button-middle-up
58 (if (boundp 'mode-line-map) 77 x-button-right x-button-right-up)))
59 (mapcar (function 78 ("epoch" .
60 (lambda (key) 79 (mapcar (function
61 (cons key (lookup-key mode-line-map key)))) 80 (lambda (key) (cons key (aref mouse::global-map key))))
62 '([button3] [button3up]))))) 81 (list (mouse::index mouse-middle mouse-down)
63 ("xterm" . 82 (mouse::index mouse-middle mouse-up)
64 (mapcar (function 83 (mouse::index mouse-right mouse-down)
65 (lambda (key) (cons key (lookup-key mouse-map key)))) 84 (mouse::index mouse-right mouse-up)
66 (list x-button-middle x-button-middle-up 85 ;; Modeline mouse map
67 x-button-right x-button-right-up))) 86 (mouse::index mouse-mode-middle mouse-down)
68 ("epoch" . 87 (mouse::index mouse-mode-middle mouse-up)
69 (mapcar (function 88 (mouse::index mouse-mode-right mouse-down)
70 (lambda (key) (cons key (aref mouse::global-map key)))) 89 (mouse::index mouse-mode-right mouse-up)
71 (list (mouse::index mouse-middle mouse-down) 90 )))
72 (mouse::index mouse-middle mouse-up) 91 ("next" .
73 (mouse::index mouse-right mouse-down) 92 (mapcar (function
74 (mouse::index mouse-right mouse-up) 93 (lambda (key)
75 ;; Modeline mouse map 94 (cons key (mousemap-get
76 (mouse::index mouse-mode-middle mouse-down) 95 (mouse-list-to-mouse-code key)
77 (mouse::index mouse-mode-middle mouse-up) 96 current-global-mousemap))))
78 (mouse::index mouse-mode-right mouse-down) 97 (apply 'nconc
79 (mouse::index mouse-mode-right mouse-up) 98 (mapcar (function
80 ))) 99 (lambda (region)
81 ("next" . 100 (mapcar (function
82 (mapcar (function 101 (lambda (key)
83 (lambda (key) 102 (cons region key)))
84 (cons key (mousemap-get 103 '((left) (up left) (shift left)
85 (mouse-list-to-mouse-code key) 104 (right) (up right)
86 current-global-mousemap)))) 105 ))))
87 (apply 'nconc 106 '(text scrollbar modeline minibuffer)))
88 (mapcar (function 107 ))
89 (lambda (region) 108 ;; SunView
90 (mapcar (function 109 ("sun" .
91 (lambda (key) 110 (mapcar (function
92 (cons region key))) 111 (lambda (key)
93 '((left) (up left) (shift left) 112 (setq key (mouse-list-to-mouse-code key))
94 (right) (up right) 113 (cons key (mousemap-get
95 )))) 114 key current-global-mousemap))))
96 '(text scrollbar modeline minibuffer))) 115 (apply 'nconc
97 )) 116 (mapcar (function
98 ;; SunView 117 (lambda (region)
99 ("sun" . 118 (mapcar (function
100 (mapcar (function 119 (lambda (key)
101 (lambda (key) 120 (cons region key)))
102 (setq key (mouse-list-to-mouse-code key)) 121 '((middle) (up middle)
103 (cons key (mousemap-get 122 (right) (up right)
104 key current-global-mousemap)))) 123 ))))
105 (apply 'nconc 124 '(text scrollbar modeline minibuffer)))
106 (mapcar (function 125 ))
107 (lambda (region) 126 ("apollo" .
108 (mapcar (function 127 (mapcar (function
109 (lambda (key) 128 (lambda (key-str) (apollo-mouse-key-and-binding
110 (cons region key))) 129 key-str)))
111 '((middle) (up middle) 130 '("M2D" "M2U" "M3D" "M3U")))
112 (right) (up right) 131 ))))))
113 ))))
114 '(text scrollbar modeline minibuffer)))
115 ))
116 ("apollo" .
117 (mapcar (function
118 (lambda (key-str) (apollo-mouse-key-and-binding
119 key-str)))
120 '("M2D" "M2U" "M3D" "M3U")))
121 )))))
122 132
123 (defun hmouse-setup () 133 (defun hmouse-setup ()
124 "Binds mouse keys for use as Smart Keys." 134 "Binds mouse keys for use as Smart Keys."
125 (interactive) 135 (interactive)
126 (or hmouse-bindings-flag hmouse-previous-bindings 136 ;; Do nothing when running in batch mode.
127 (setq hmouse-previous-bindings (hmouse-get-bindings))) 137 (if noninteractive
128 ;; Ensure Gillespie's Info mouse support is off since 138 nil
129 ;; Hyperbole handles that. 139 (or hmouse-bindings-flag hmouse-previous-bindings
130 (setq Info-mouse-support nil) 140 (setq hmouse-previous-bindings (hmouse-get-bindings)))
131 ;; 141 ;; Ensure Gillespie's Info mouse support is off since
132 (cond ;; GNU Emacs 19 142 ;; Hyperbole handles that.
133 ((if (not noninteractive) hyperb:emacs19-p) 143 (setq Info-mouse-support nil)
134 (setq hmouse-set-point-command 'mouse-set-point)
135 ;; Get rid of Info-mode [mouse-2] binding since Hyperbole performs
136 ;; a superset of what it does.
137 (add-hook 'Info-mode-hook
138 (function (lambda () (define-key Info-mode-map [mouse-2] nil))))
139 ;; 144 ;;
140 (if (memq window-system '(ns dps)) 145 (cond;; GNU Emacs 19
141 ;; NEXTSTEP offers only 2 mouse buttons which we use 146 (hyperb:emacs19-p
142 ;; as the Smart Keys. We move the mouse-set-point 147 (setq hmouse-set-point-command 'mouse-set-point)
143 ;; command to shift-left. 148 ;; Get rid of Info-mode [mouse-2] binding since Hyperbole performs
144 (progn 149 ;; a superset of what it does.
145 (global-set-key [S-down-mouse-1] 'mouse-drag-region) 150 (add-hook 'Info-mode-hook
146 (global-set-key [S-mouse-1] 'mouse-set-point) 151 (function (lambda () (define-key Info-mode-map [mouse-2] nil))))
147 (global-set-key [down-mouse-1] 'action-key-depress-emacs19) 152 ;;
148 (global-set-key [mouse-1] 'action-mouse-key-emacs19) 153 (if (memq window-system '(ns dps))
149 (global-set-key [double-mouse-1] 'action-mouse-key-emacs19) 154 ;; NEXTSTEP offers only 2 mouse buttons which we use
150 (global-set-key [triple-mouse-1] 'action-mouse-key-emacs19) 155 ;; as the Smart Keys. We move the mouse-set-point
151 (global-set-key [down-mouse-2] 'assist-key-depress-emacs19) 156 ;; command to shift-left.
152 (global-set-key [mouse-2] 'assist-mouse-key-emacs19) 157 (progn
153 (global-set-key [double-mouse-2] 'assist-mouse-key-emacs19) 158 (global-set-key [S-down-mouse-1] 'mouse-drag-region)
154 (global-set-key [triple-mouse-2] 'assist-mouse-key-emacs19) 159 (global-set-key [S-mouse-1] 'mouse-set-point)
155 (global-set-key [vertical-line down-mouse-1] 'action-key-depress-emacs19) 160 (global-set-key [down-mouse-1] 'action-key-depress-emacs19)
156 (global-set-key [vertical-line mouse-1] 'action-mouse-key-emacs19) 161 (global-set-key [mouse-1] 'action-mouse-key-emacs19)
157 (global-set-key [vertical-line down-mouse-2] 'assist-key-depress-emacs19) 162 (global-set-key [double-mouse-1] 'action-mouse-key-emacs19)
158 (global-set-key [vertical-line mouse-2] 'assist-mouse-key-emacs19) 163 (global-set-key [triple-mouse-1] 'action-mouse-key-emacs19)
159 (global-set-key [mode-line down-mouse-2] 'action-key-depress-emacs19) 164 (global-set-key [down-mouse-2] 'assist-key-depress-emacs19)
160 (global-set-key [mode-line mouse-2] 'action-mouse-key-emacs19) 165 (global-set-key [mouse-2] 'assist-mouse-key-emacs19)
161 (global-set-key [mode-line down-mouse-3] 'assist-key-depress-emacs19) 166 (global-set-key [double-mouse-2] 'assist-mouse-key-emacs19)
162 (global-set-key [mode-line mouse-3] 'assist-mouse-key-emacs19)) 167 (global-set-key [triple-mouse-2] 'assist-mouse-key-emacs19)
163 ;; X 168 (global-set-key [vertical-line down-mouse-1] 'action-key-depress-emacs19)
164 (global-set-key [down-mouse-2] 'action-key-depress-emacs19) 169 (global-set-key [vertical-line mouse-1] 'action-mouse-key-emacs19)
165 (global-set-key [mouse-2] 'action-mouse-key-emacs19) 170 (global-set-key [vertical-line down-mouse-2] 'assist-key-depress-emacs19)
166 (global-set-key [double-mouse-2] 'action-mouse-key-emacs19) 171 (global-set-key [vertical-line mouse-2] 'assist-mouse-key-emacs19)
167 (global-set-key [triple-mouse-2] 'action-mouse-key-emacs19) 172 (global-set-key [mode-line down-mouse-2] 'action-key-depress-emacs19)
168 (global-set-key [down-mouse-3] 'assist-key-depress-emacs19) 173 (global-set-key [mode-line mouse-2] 'action-mouse-key-emacs19)
169 (global-set-key [mouse-3] 'assist-mouse-key-emacs19) 174 (global-set-key [mode-line down-mouse-3] 'assist-key-depress-emacs19)
170 (global-set-key [double-mouse-3] 'assist-mouse-key-emacs19) 175 (global-set-key [mode-line mouse-3] 'assist-mouse-key-emacs19))
171 (global-set-key [triple-mouse-3] 'assist-mouse-key-emacs19) 176 ;; X
172 (global-set-key [vertical-line down-mouse-2] 'action-key-depress-emacs19) 177 (global-set-key [down-mouse-2] 'action-key-depress-emacs19)
173 (global-set-key [vertical-line mouse-2] 'action-mouse-key-emacs19) 178 (global-set-key [mouse-2] 'action-mouse-key-emacs19)
174 (global-set-key [vertical-line down-mouse-3] 'assist-key-depress-emacs19) 179 (global-set-key [double-mouse-2] 'action-mouse-key-emacs19)
175 (global-set-key [vertical-line mouse-3] 'assist-mouse-key-emacs19) 180 (global-set-key [triple-mouse-2] 'action-mouse-key-emacs19)
176 (global-set-key [mode-line down-mouse-2] 'action-key-depress-emacs19) 181 (global-set-key [down-mouse-3] 'assist-key-depress-emacs19)
177 (global-set-key [mode-line mouse-2] 'action-mouse-key-emacs19) 182 (global-set-key [mouse-3] 'assist-mouse-key-emacs19)
178 (global-set-key [mode-line down-mouse-3] 'assist-key-depress-emacs19) 183 (global-set-key [double-mouse-3] 'assist-mouse-key-emacs19)
179 (global-set-key [mode-line mouse-3] 'assist-mouse-key-emacs19))) 184 (global-set-key [triple-mouse-3] 'assist-mouse-key-emacs19)
180 ;; 185 (global-set-key [vertical-line down-mouse-2] 'action-key-depress-emacs19)
181 ;; XEmacs 186 (global-set-key [vertical-line mouse-2] 'action-mouse-key-emacs19)
182 ((if (not noninteractive) hyperb:xemacs-p) 187 (global-set-key [vertical-line down-mouse-3] 'assist-key-depress-emacs19)
183 ;; Set mouse bindings under XEmacs, even if not under a window 188 (global-set-key [vertical-line mouse-3] 'assist-mouse-key-emacs19)
184 ;; system since it can have frames on ttys and windowed displays at 189 (global-set-key [mode-line down-mouse-2] 'action-key-depress-emacs19)
185 ;; the same time. 190 (global-set-key [mode-line mouse-2] 'action-mouse-key-emacs19)
186 (setq hmouse-set-point-command 'hmouse-move-point-xemacs) 191 (global-set-key [mode-line down-mouse-3] 'assist-key-depress-emacs19)
187 ;; Get rid of Info-mode buttons 2 and 3 bindings since Hyperbole 192 (global-set-key [mode-line mouse-3] 'assist-mouse-key-emacs19)))
188 ;; handles things in Info. 193 ;;
189 (add-hook 'Info-mode-hook 194 ;; XEmacs
190 (function (lambda () 195 (hyperb:xemacs-p
191 (define-key Info-mode-map 'button2 nil)))) 196 ;; Set mouse bindings under XEmacs, even if not under a window
192 ;; 197 ;; system since it can have frames on ttys and windowed displays at
193 (global-set-key 'button2 'action-key-depress) 198 ;; the same time.
194 (global-set-key 'button2up 'action-mouse-key) 199 (setq hmouse-set-point-command 'hmouse-move-point-xemacs)
195 (if (fboundp 'infodock-set-mouse-bindings) 200 ;; Get rid of Info-mode buttons 2 and 3 bindings since Hyperbole
196 (infodock-set-mouse-bindings) 201 ;; handles things in Info.
197 (let ((unbind-but3 202 (add-hook 'Info-mode-hook
198 (function (lambda () 203 (function (lambda ()
199 (define-key Info-mode-map 'button3 nil))))) 204 (define-key Info-mode-map 'button2 nil))))
200 (if (and (boundp 'Info-mode-map) (keymapp Info-mode-map)) 205 ;;
201 (funcall unbind-but3) 206 (global-set-key 'button2 'action-key-depress)
202 (add-hook 'Info-mode-hook unbind-but3))) 207 (global-set-key 'button2up 'action-mouse-key)
203 (if (boundp 'mode-line-map) 208 (if (fboundp 'infodock-set-mouse-bindings)
204 (progn (define-key mode-line-map 'button3 'assist-key-depress) 209 (infodock-set-mouse-bindings)
205 (define-key mode-line-map 'button3up 'assist-mouse-key))) 210 (let ((unbind-but3
206 (global-set-key 'button3 'assist-key-depress) 211 (function (lambda ()
207 (global-set-key 'button3up 'assist-mouse-key))) 212 (define-key Info-mode-map 'button3 nil)))))
208 ;; 213 (if (and (boundp 'Info-mode-map) (keymapp Info-mode-map))
209 ;; X 214 (funcall unbind-but3)
210 ((equal hyperb:window-system "xterm") 215 (add-hook 'Info-mode-hook unbind-but3)))
211 (setq hmouse-set-point-command 'x-mouse-set-point) 216 (if (boundp 'mode-line-map)
212 (define-key mouse-map x-button-middle 'action-key-depress) 217 (progn (define-key mode-line-map 'button3 'assist-key-depress)
213 (define-key mouse-map x-button-middle-up 'action-mouse-key) 218 (define-key mode-line-map 'button3up 'assist-mouse-key)))
214 (define-key mouse-map x-button-right 'assist-key-depress) 219 (global-set-key 'button3 'assist-key-depress)
215 (define-key mouse-map x-button-right-up 'assist-mouse-key) 220 (global-set-key 'button3up 'assist-mouse-key)))
216 ;; Use these instead of the above for a true META-BUTTON binding. 221 ;;
217 ;; (define-key mouse-map x-button-m-middle 'assist-key-depress) 222 ;; X
218 ;; (define-key mouse-map x-button-m-middle-up 'assist-mouse-key) 223 ((equal hyperb:window-system "xterm")
219 ) 224 (setq hmouse-set-point-command 'x-mouse-set-point)
220 ;; 225 (define-key mouse-map x-button-middle 'action-key-depress)
221 ;; Epoch 226 (define-key mouse-map x-button-middle-up 'action-mouse-key)
222 ((equal hyperb:window-system "epoch") 227 (define-key mouse-map x-button-right 'assist-key-depress)
223 (setq hmouse-set-point-command 'mouse::set-point) 228 (define-key mouse-map x-button-right-up 'assist-mouse-key)
224 (global-set-mouse mouse-middle mouse-down 'action-key-depress) 229 ;; Use these instead of the above for a true META-BUTTON binding.
225 (global-set-mouse mouse-middle mouse-up 'action-mouse-key) 230 ;; (define-key mouse-map x-button-m-middle 'assist-key-depress)
226 (global-set-mouse mouse-right mouse-down 'assist-key-depress) 231 ;; (define-key mouse-map x-button-m-middle-up 'assist-mouse-key)
227 (global-set-mouse mouse-right mouse-up 'assist-mouse-key) 232 )
228 ;; Modeline mouse map 233 ;;
229 (global-set-mouse mouse-mode-middle mouse-down 'action-key-depress) 234 ;; Epoch
230 (global-set-mouse mouse-mode-middle mouse-up 'action-mouse-key) 235 ((equal hyperb:window-system "epoch")
231 (global-set-mouse mouse-mode-right mouse-down 'assist-key-depress) 236 (setq hmouse-set-point-command 'mouse::set-point)
232 (global-set-mouse mouse-mode-right mouse-up 'assist-mouse-key) 237 (global-set-mouse mouse-middle mouse-down 'action-key-depress)
233 ) 238 (global-set-mouse mouse-middle mouse-up 'action-mouse-key)
234 ;; 239 (global-set-mouse mouse-right mouse-down 'assist-key-depress)
235 ;; NeXT 240 (global-set-mouse mouse-right mouse-up 'assist-mouse-key)
236 ((equal hyperb:window-system "next") 241 ;; Modeline mouse map
237 (setq hmouse-set-point-command 'hmouse-move-point-eterm) 242 (global-set-mouse mouse-mode-middle mouse-down 'action-key-depress)
238 ;; Use shift-left button to set point. 243 (global-set-mouse mouse-mode-middle mouse-up 'action-mouse-key)
239 ;; Use left button instead of non-existent middle as Smart Key. 244 (global-set-mouse mouse-mode-right mouse-down 'assist-key-depress)
240 (mapcar 245 (global-set-mouse mouse-mode-right mouse-up 'assist-mouse-key)
241 (function 246 )
242 (lambda (region) 247 ;;
243 (global-set-mouse (cons region '(shift left)) 'mouse-move-point) 248 ;; NeXT
244 (global-set-mouse (cons region '(left)) 'action-key-depress) 249 ((equal hyperb:window-system "next")
245 (global-set-mouse (cons region '(up left)) 'action-mouse-key) 250 (setq hmouse-set-point-command 'hmouse-move-point-eterm)
246 (global-set-mouse (cons region '(right)) 'assist-key-depress) 251 ;; Use shift-left button to set point.
247 (global-set-mouse (cons region '(up right)) 'assist-mouse-key) 252 ;; Use left button instead of non-existent middle as Smart Key.
248 ;; Use these instead of the above for a true META-BUTTON binding. 253 (mapcar
249 ;; (global-set-mouse (cons region '(meta right)) 'assist-key-depress) 254 (function
250 ;; (global-set-mouse (cons region '(meta up right)) 'assist-mouse-key) 255 (lambda (region)
251 )) 256 (global-set-mouse (cons region '(shift left)) 'mouse-move-point)
252 '(text scrollbar modeline minibuffer)) 257 (global-set-mouse (cons region '(left)) 'action-key-depress)
253 ) 258 (global-set-mouse (cons region '(up left)) 'action-mouse-key)
254 ;; 259 (global-set-mouse (cons region '(right)) 'assist-key-depress)
255 ;; SunView 260 (global-set-mouse (cons region '(up right)) 'assist-mouse-key)
256 ((equal hyperb:window-system "sun") 261 ;; Use these instead of the above for a true META-BUTTON binding.
257 (setq hmouse-set-point-command 'hmouse-move-point-eterm) 262 ;; (global-set-mouse (cons region '(meta right)) 'assist-key-depress)
258 (mapcar 263 ;; (global-set-mouse (cons region '(meta up right)) 'assist-mouse-key)
259 (function 264 ))
260 (lambda (region) 265 '(text scrollbar modeline minibuffer))
261 (global-set-mouse (cons region '(middle)) 'action-key-depress) 266 )
262 (global-set-mouse (cons region '(up middle)) 'action-mouse-key) 267 ;;
263 (global-set-mouse (cons region '(right)) 'assist-key-depress) 268 ;; SunView
264 (global-set-mouse (cons region '(up right)) 'assist-mouse-key) 269 ((equal hyperb:window-system "sun")
265 ;; Use these instead of the above for a true META-BUTTON binding. 270 (setq hmouse-set-point-command 'hmouse-move-point-eterm)
266 ;; (global-set-mouse (cons region '(meta middle)) 'assist-key-depress) 271 (mapcar
267 ;; (global-set-mouse (cons region '(meta up middle)) 'assist-mouse-key) 272 (function
268 )) 273 (lambda (region)
269 '(text scrollbar modeline minibuffer)) 274 (global-set-mouse (cons region '(middle)) 'action-key-depress)
270 ) 275 (global-set-mouse (cons region '(up middle)) 'action-mouse-key)
271 ;; 276 (global-set-mouse (cons region '(right)) 'assist-key-depress)
272 ;; Apollo DM 277 (global-set-mouse (cons region '(up right)) 'assist-mouse-key)
273 ((equal hyperb:window-system "apollo") 278 ;; Use these instead of the above for a true META-BUTTON binding.
274 (setq hmouse-set-point-command 'apollo-mouse-move-point) 279 ;; (global-set-mouse (cons region '(meta middle)) 'assist-key-depress)
275 (bind-apollo-mouse-button "M2D" 'action-key-depress) 280 ;; (global-set-mouse (cons region '(meta up middle)) 'assist-mouse-key)
276 (bind-apollo-mouse-button "M2U" 'action-mouse-key) 281 ))
277 (bind-apollo-mouse-button "M3D" 'assist-key-depress) 282 '(text scrollbar modeline minibuffer))
278 (bind-apollo-mouse-button "M3U" 'assist-mouse-key) 283 )
279 ;; Use these instead of the above for a true META-BUTTON binding. 284 ;;
280 ;; (bind-apollo-mouse-button "M2U" 'action-mouse-key 285 ;; Apollo DM
281 ;; 'assist-mouse-key) 286 ((equal hyperb:window-system "apollo")
282 ;; (bind-apollo-mouse-button "M2D" 'action-key-depress 'assist-key-depress) 287 (setq hmouse-set-point-command 'apollo-mouse-move-point)
283 )) 288 (bind-apollo-mouse-button "M2D" 'action-key-depress)
284 (setq hmouse-bindings (hmouse-get-bindings) 289 (bind-apollo-mouse-button "M2U" 'action-mouse-key)
285 hmouse-bindings-flag t)) 290 (bind-apollo-mouse-button "M3D" 'assist-key-depress)
291 (bind-apollo-mouse-button "M3U" 'assist-mouse-key)
292 ;; Use these instead of the above for a true META-BUTTON binding.
293 ;; (bind-apollo-mouse-button "M2U" 'action-mouse-key
294 ;; 'assist-mouse-key)
295 ;; (bind-apollo-mouse-button "M2D" 'action-key-depress 'assist-key-depress)
296 ))
297 (setq hmouse-bindings (hmouse-get-bindings)
298 hmouse-bindings-flag t)))