diff options
author | Richard M. Stallman <rms@gnu.org> | 1994-05-22 20:55:15 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 1994-05-22 20:55:15 +0000 |
commit | 7e03f44d8cbccd2f65b989bab7bd3b95ecbbabf7 (patch) | |
tree | d31afadcc3a10c9370585c9ac80bfe89c3742f37 /lisp/subr.el | |
parent | 4db24e756eec88574603636971633c3ba4c02f52 (diff) | |
download | emacs-7e03f44d8cbccd2f65b989bab7bd3b95ecbbabf7.tar.gz |
(posn-col-row): Do something useful for scroll bar event.
Diffstat (limited to 'lisp/subr.el')
-rw-r--r-- | lisp/subr.el | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/lisp/subr.el b/lisp/subr.el index b5b7a8d620d..c281a64843d 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -420,17 +420,27 @@ POSITION should be a list of the form as returned by the `event-start' and `event-end' functions." (nth 2 position)) -(defsubst posn-col-row (position) - "Return the column and row in POSITION, measured in characters. +(defun posn-col-row (position) + "Return the row and column in POSITION, measured in characters. POSITION should be a list of the form (WINDOW BUFFER-POSITION (X . Y) TIMESTAMP) -as returned by the `event-start' and `event-end' functions." - (let* ((pair (nth 2 position)) - (window (posn-window position)) - (frame (if (framep window) window (window-frame window))) - (x (/ (car pair) (frame-char-width frame))) - (y (/ (cdr pair) (frame-char-height frame)))) - (cons x y))) +as returned by the `event-start' and `event-end' functions. +For a scroll-bar event, the result column is 0, and the row +corresponds to the vertical position of the click in the scroll bar." + (let ((pair (nth 2 position)) + (window (posn-window position))) + (if (eq (if (symbolp (nth 1 position)) (nth 1 position) + (car (nth 1 position))) + 'vertical-scroll-bar) + (cons 0 (scroll-bar-scale pair (1- (window-height window)))) + (if (eq (if (symbolp (nth 1 position)) (nth 1 position) + (car (nth 1 position))) + 'horizontal-scroll-bar) + (cons (scroll-bar-scale pair (window-width window)) 0) + (let ((frame (if (framep window) window (window-frame window))) + (x (/ (car pair) (frame-char-width frame))) + (y (/ (cdr pair) (frame-char-height frame)))) + (cons x y)))))) (defsubst posn-timestamp (position) "Return the timestamp of POSITION. |