From: Chong Yidong Date: Wed, 15 Apr 2009 22:41:20 +0000 (+0000) Subject: * subr.el (posn-col-row): Properly compute line spacing. X-Git-Tag: emacs-pretest-23.0.93~124 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=7beba943eca576811305afdef5a471cee1f36fe6;p=emacs.git * subr.el (posn-col-row): Properly compute line spacing. Suggested by Nikolaj Schumacher (Bug#2933). --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 163b3e21ab9..88d37ed22a0 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2009-04-15 Chong Yidong + + * subr.el (posn-col-row): Properly compute line spacing. + Suggested by Nikolaj Schumacher (Bug#2933). + 2009-04-15 Ulf Jasper * net/newst-treeview.el (newsticker-treeview-jump): Enable virtual diff --git a/lisp/subr.el b/lisp/subr.el index ffe8a9de5b1..5372adb510c 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -930,13 +930,19 @@ and `event-end' functions." (cons (scroll-bar-scale pair (window-width window)) 0)) (t (let* ((frame (if (framep window) window (window-frame window))) - (x (/ (car pair) (frame-char-width frame))) - (y (/ (cdr pair) (+ (frame-char-height frame) - (or (frame-parameter frame 'line-spacing) - ;; FIXME: Why the `default'? - (default-value 'line-spacing) - 0))))) - (cons x y)))))) + ;; FIXME: This should take line-spacing properties on + ;; newlines into account. + (spacing (when (display-graphic-p frame) + (or (with-current-buffer (window-buffer window) + line-spacing) + (frame-parameter frame 'line-spacing))))) + (cond ((floatp spacing) + (setq spacing (truncate (* spacing + (frame-char-height frame))))) + ((null spacing) + (setq spacing 0))) + (cons (/ (car pair) (frame-char-width frame)) + (/ (cdr pair) (+ (frame-char-height frame) spacing)))))))) (defun posn-actual-col-row (position) "Return the actual column and row in POSITION, measured in characters.