bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#21012: 25.0.50; eww: last char of a line sometimes not fully visible


From: Michael Heerdegen
Subject: bug#21012: 25.0.50; eww: last char of a line sometimes not fully visible
Date: Fri, 10 Jul 2015 16:16:00 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux)

Eli Zaretskii <eliz@gnu.org> writes:

> > FWIW, the whole thing is already displayed
>
> Then please try this change and see if it gives good results:
>
> --- lisp/net/shr.el~0 2015-05-10 07:23:55 +0300
> +++ lisp/net/shr.el   2015-07-09 19:24:11 +0300

Unfortunately it doesn't work.  Rendering now fails with an error:

Debugger entered--Lisp error: (wrong-type-argument number-or-marker-p nil)
  >(nil nil)
  (if (> (cdr (nth 2 (posn-at-point))) orig-y) (backward-char 1))
  (let ((orig-y (cdr (nth 2 (posn-at-point))))) (vertical-motion (cons (/ 
column (frame-char-width)) 0)) (if (> (cdr (nth 2 (posn-at-point))) orig-y) 
(backward-char 1)) (if (eolp) nil (let* ((posn (posn-at-point)) (ch-x (car (nth 
2 posn))) (ch-width (car (nth 9 posn))) (ch-pos (nth 1 posn))) (if (and 
(natnump ch-pos) (<= (+ ch-x ch-width) win-width)) (forward-char 1)))))
  (if (not shr-use-fonts) (move-to-column column) (if (eolp) nil (forward-char 
1)) (let ((orig-y (cdr (nth 2 (posn-at-point))))) (vertical-motion (cons (/ 
column (frame-char-width)) 0)) (if (> (cdr (nth 2 (posn-at-point))) orig-y) 
(backward-char 1)) (if (eolp) nil (let* ((posn (posn-at-point)) (ch-x (car (nth 
2 posn))) (ch-width (car (nth 9 posn))) (ch-pos (nth 1 posn))) (if (and 
(natnump ch-pos) (<= (+ ch-x ch-width) win-width)) (forward-char 1))))))
  shr-vertical-motion(1250 1247)
  [...]
  shr-fill-line()
  
because `posn-at-point' returns nil as soon as point moves past
`window-end'.  I can see that with the

  (advice-add 'shr-fill-line :after (lambda (&rest _) (sit-for .5)))

advice active.

Obviously it's not as simple as I thought, not the whole buffer is
"already displayed".  My bad.


Michael.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]