Mercurial > hg > xemacs-beta
comparison lisp/modeline.el @ 259:11cf20601dec r20-5b28
Import from CVS: tag r20-5b28
author | cvs |
---|---|
date | Mon, 13 Aug 2007 10:23:02 +0200 |
parents | 65c19d2020f7 |
children | 727739f917cb |
comparison
equal
deleted
inserted
replaced
258:58424f6abf56 | 259:11cf20601dec |
---|---|
72 (let ((done nil) | 72 (let ((done nil) |
73 (depress-line (event-y event)) | 73 (depress-line (event-y event)) |
74 (start-event-frame (event-frame event)) | 74 (start-event-frame (event-frame event)) |
75 (start-event-window (event-window event)) | 75 (start-event-window (event-window event)) |
76 (start-nwindows (count-windows t)) | 76 (start-nwindows (count-windows t)) |
77 (hscroll-offset | 77 (hscroll-delta (face-width 'modeline)) |
78 (- (modeline-hscroll (event-window event)) (event-x event))) | 78 (start-hscroll (modeline-hscroll (event-window event))) |
79 (start-x-pixel (event-x-pixel event)) | |
79 (last-timestamp 0) | 80 (last-timestamp 0) |
80 default-line-height | 81 default-line-height |
81 modeline-height | 82 modeline-height |
82 should-enlarge-minibuffer | 83 should-enlarge-minibuffer |
83 event min-height minibuffer y top bot edges wconfig growth) | 84 event min-height minibuffer y top bot edges wconfig growth) |
129 (setq unread-command-events (nconc unread-command-events | 130 (setq unread-command-events (nconc unread-command-events |
130 (list event)) | 131 (list event)) |
131 done t)) | 132 done t)) |
132 ((button-release-event-p event) | 133 ((button-release-event-p event) |
133 (setq done t) | 134 (setq done t) |
134 (if modeline-click-swaps-buffers | 135 ;; Consider we have a mouse click neither X pos (modeline |
135 (mouse-release-modeline event depress-line))) | 136 ;; scroll) nore Y pos (modeline drag) have changed. |
137 (and modeline-click-swaps-buffers | |
138 (= depress-line (event-y event)) | |
139 (= start-hscroll (modeline-hscroll start-event-window)) | |
140 (modeline-swap-buffers event))) | |
136 ((button-event-p event) | 141 ((button-event-p event) |
137 (setq done t)) | 142 (setq done t)) |
138 ((not (motion-event-p event)) | 143 ((not (motion-event-p event)) |
139 (dispatch-event event)) | 144 (dispatch-event event)) |
140 ((not (eq start-event-frame (event-frame event))) | 145 ((not (eq start-event-frame (event-frame event))) |
141 (setq done t)) | 146 (setq done t)) |
142 ((< (abs (- (event-timestamp event) last-timestamp)) | 147 ((< (abs (- (event-timestamp event) last-timestamp)) |
143 drag-modeline-event-lag) | 148 drag-modeline-event-lag) |
144 nil) | 149 nil) |
145 (t | 150 (t |
146 (set-modeline-hscroll (event-window event) | 151 (set-modeline-hscroll start-event-window |
147 (+ hscroll-offset (event-x event))) | 152 (+ (/ (- (event-x-pixel event) |
153 start-x-pixel) | |
154 hscroll-delta) | |
155 start-hscroll)) | |
148 (setq last-timestamp (event-timestamp event) | 156 (setq last-timestamp (event-timestamp event) |
149 y (event-y-pixel event) | 157 y (event-y-pixel event) |
150 edges (window-pixel-edges start-event-window) | 158 edges (window-pixel-edges start-event-window) |
151 top (nth 1 edges) | 159 top (nth 1 edges) |
152 bot (nth 3 edges)) | 160 bot (nth 3 edges)) |
199 (/= top (nth 1 (window-pixel-edges | 207 (/= top (nth 1 (window-pixel-edges |
200 start-event-window))))) | 208 start-event-window))))) |
201 (set-window-configuration wconfig)))))))) | 209 (set-window-configuration wconfig)))))))) |
202 | 210 |
203 ;; from Bob Weiner (bob_weiner@pts.mot.com) | 211 ;; from Bob Weiner (bob_weiner@pts.mot.com) |
204 (defun mouse-release-modeline (event line-num) | 212 ;; Whether this function should be called is now decided in |
205 "Handle modeline click EVENT on LINE-NUM by switching buffers. | 213 ;; mouse-drag-modeline - dverna feb. 98 |
214 (defun modeline-swap-buffers (event) | |
215 "Handle mouse clicks on modeline by switching buffers. | |
206 If click on left half of a frame's modeline, bury current buffer. | 216 If click on left half of a frame's modeline, bury current buffer. |
207 If click on right half of a frame's modeline, raise bottommost buffer. | 217 If click on right half of a frame's modeline, raise bottommost buffer. |
208 Args are: EVENT, the mouse release event, and LINE-NUM, the line number | 218 Arg EVENT is the button release event that occured on the modeline." |
209 within the frame at which the mouse was first depressed." | 219 (or (event-over-modeline-p event) |
210 (if (= line-num (event-y event)) | 220 (error "not over a modeline")) |
211 ;; Button press and release are at same line, treat this as | 221 (or (button-release-event-p event) |
212 ;; a click and switch buffers. | 222 (error "not a button release event")) |
213 (if (< (event-x event) (/ (window-width (event-window event)) 2)) | 223 (if (< (event-x event) (/ (window-width (event-window event)) 2)) |
214 ;; On left half of modeline, bury current buffer, | 224 ;; On left half of modeline, bury current buffer, |
215 ;; displaying second buffer on list. | 225 ;; displaying second buffer on list. |
216 (mouse-bury-buffer event) | 226 (mouse-bury-buffer event) |
217 ;; On right half of modeline, raise and display bottommost | 227 ;; On right half of modeline, raise and display bottommost |
218 ;; buffer in buffer list. | 228 ;; buffer in buffer list. |
219 (mouse-unbury-buffer event)))) | 229 (mouse-unbury-buffer event))) |
220 | 230 |
221 (defconst modeline-menu | 231 (defconst modeline-menu |
222 '("Window Commands" | 232 '("Window Commands" |
223 ["Delete Window Above" delete-window t] | 233 ["Delete Window Above" delete-window t] |
224 ["Delete Other Windows" delete-other-windows t] | 234 ["Delete Other Windows" delete-other-windows t] |