Avoid errors in posn-at-point for large images
* 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)
This commit is contained in:
parent
aaa3a93e50
commit
966b73b316
1 changed files with 8 additions and 0 deletions
|
@ -10790,11 +10790,19 @@ The `posn-' functions access elements of such lists. */)
|
|||
{
|
||||
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);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue