mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-31 17:30:54 -08:00
Fix cursor drawing in hscrolled R2L screen lines.
src/xdisp.c (get_glyph_string_clip_rects): Don't let the width of a clipping rectangle become negative (i.e. large positive, since it's an unsigned data type). This can happen in R2L hscrolled glyph rows, and caused us to draw the cursor glyph on the fringe. For the details, see http://lists.gnu.org/archive/html/emacs-devel/2014-08/msg00543.html.
This commit is contained in:
parent
53d815b09f
commit
4457cc825b
2 changed files with 13 additions and 1 deletions
|
|
@ -1,3 +1,12 @@
|
|||
2014-08-31 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* xdisp.c (get_glyph_string_clip_rects): Don't let the width of a
|
||||
clipping rectangle become negative (i.e. large positive, since
|
||||
it's an unsigned data type). This can happen in R2L hscrolled
|
||||
glyph rows, and caused us to draw the cursor glyph on the fringe.
|
||||
For the details, see
|
||||
http://lists.gnu.org/archive/html/emacs-devel/2014-08/msg00543.html.
|
||||
|
||||
2014-08-31 Ken Brown <kbrown@cornell.edu>
|
||||
|
||||
* gmalloc.c: Don't include <stdlib.h>. Declare system malloc and
|
||||
|
|
|
|||
|
|
@ -2174,7 +2174,10 @@ get_glyph_string_clip_rects (struct glyph_string *s, NativeRectangle *rects, int
|
|||
|
||||
if (s->x > r.x)
|
||||
{
|
||||
r.width -= s->x - r.x;
|
||||
if (r.width >= s->x - r.x)
|
||||
r.width -= s->x - r.x;
|
||||
else /* R2L hscrolled row with cursor outside text area */
|
||||
r.width = 0;
|
||||
r.x = s->x;
|
||||
}
|
||||
r.width = min (r.width, glyph->pixel_width);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue