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

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

bug#11464: 24.1.50; pos-visible-in-window-p returns a false positive wit


From: Eli Zaretskii
Subject: bug#11464: 24.1.50; pos-visible-in-window-p returns a false positive with bidi text
Date: Fri, 18 May 2012 14:32:29 +0300

> From: Ari Roponen <ari.roponen@gmail.com>
> Cc: mwd@cert.org,  11464@debbugs.gnu.org
> Date: Fri, 18 May 2012 13:47:26 +0300
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> > And if that happens, the correction code below, viz.:
> >
> >       if (bottom_y <= it.last_visible_y
> >       && it.bidi_p && it.bidi_it.scan_dir == -1
> >       && IT_CHARPOS (it) < charpos)
> >
> > would evaluate to false, and visible_p would have stayed at its 1
> > value, which is wrong.
> >
> > So could you please clarify this case?
> 
> Yes, pos_visible_p indeed returns incorrect value (1), but it is called
> from Fpos_visible_in_window_p, which returns the correct value.  For
> longer description, see below.

OK, but pos_visible_p is called from other places, and needs to
produce a correct result by itself.

> > Also, what was the value of top_y in your first case, i.e.:
> >
> >> bottom_y = 300
> >> it.last_visible_y = 304
> 
> That case has the following values now (in emacs-24 rev. 108005):
> 
> bottom_y = 302
> it.last_visible_y = 304
> top_y = 285

Very strange, for both 300 and 302.  These values seem to imply that
the screen line where we wind up spans pixel coordinates [285..302],
which means move_it_to didn't get to its goal coordinate 303.

What are the values of it.max_ascent and it.max_descent in this case,
at the point where the move_it_to call on line 1287 returns?

> I'm not sure why bottom_y has changed its value.  I guess that is
> because I installed some new fonts.

That's okay, they both puzzle me alike.

Thanks.





reply via email to

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