1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-13 06:50:39 -08:00

(handle_invisible_prop): Set it->position to fix cursor

display when point moves across an ellipsis.  If there are
adjacent invisible texts, don't lose the second one's ellipsis.
(x_produce_glyphs): Doc fix.
This commit is contained in:
Károly Lőrentey 2006-01-24 07:59:23 +00:00
parent dd2a3d136f
commit bf7f1d30f5
2 changed files with 31 additions and 3 deletions

View file

@ -1,3 +1,10 @@
2006-01-24 L$,1 q(Brentey K,Aa(Broly <lorentey@elte.hu>
* xdisp.c (handle_invisible_prop): Set it->position to fix cursor
display when point moves across an ellipsis. If there are
adjacent invisible texts, don't lose the second one's ellipsis.
(x_produce_glyphs): Doc fix.
2006-01-23 Stefan Monnier <monnier@iro.umontreal.ca>
* xterm.c (x_catch_errors_unwind): Yet another int/Lisp_Object mixup.

View file

@ -3614,6 +3614,11 @@ handle_invisible_prop (it)
skip starting with next_stop. */
if (invis_p)
IT_CHARPOS (*it) = next_stop;
/* If there are adjacent invisible texts, don't lose the
second one's ellipsis. */
if (invis_p == 2)
display_ellipsis_p = 1;
}
while (invis_p);
@ -3634,7 +3639,23 @@ handle_invisible_prop (it)
it->stack[it->sp - 1].display_ellipsis_p = display_ellipsis_p;
}
else if (display_ellipsis_p)
setup_for_ellipsis (it, 0);
{
/* Make sure that the glyphs of the ellipsis will get
correct `charpos' values. If we would not update
it->position here, the glyphs would belong to the
last visible character _before_ the invisible
text, which confuses `set_cursor_from_row'.
We use the last invisible position instead of the
first because this way the cursor is always drawn on
the first "." of the ellipsis, whenever PT is inside
the invisible text. Otherwise the cursor would be
placed _after_ the ellipsis when the point is after the
first invisible character. */
it->position.charpos = IT_CHARPOS (*it) - 1;
it->position.bytepos = CHAR_TO_BYTE (it->position.charpos);
setup_for_ellipsis (it, 0);
}
}
}
@ -19815,8 +19836,8 @@ calc_line_height_property (it, val, font, boff, override)
/* RIF:
Produce glyphs/get display metrics for the display element IT is
loaded with. See the description of struct display_iterator in
dispextern.h for an overview of struct display_iterator. */
loaded with. See the description of struct it in dispextern.h
for an overview of struct it. */
void
x_produce_glyphs (it)