* src/keyboard.c (Fposn_at_point): If pos-visible-in-window-p
returns a 6-member list for a partially visible glyph, pass the
sum of Y and RTOP to posn-at-x-y, since that's where the visible
portion of that glyph begins on display. (Bug#24804) (Bug#21832)
(Bug#23809)
{
Lisp_Object x = XCAR (tem);
Lisp_Object y = XCAR (XCDR (tem));
+ Lisp_Object aux_info = XCDR (XCDR (tem));
+ int y_coord = XINT (y);
/* Point invisible due to hscrolling? X can be -1 when a
newline in a R2L line overflows into the left fringe. */
if (XINT (x) < -1)
return Qnil;
+ if (!NILP (aux_info) && y_coord < 0)
+ {
+ int rtop = XINT (XCAR (aux_info));
+
+ y = make_number (y_coord + rtop);
+ }
tem = Fposn_at_x_y (x, y, window, Qnil);
}