diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 9 | ||||
| -rw-r--r-- | src/xdisp.c | 5 |
2 files changed, 13 insertions, 1 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 8f2e01f8cf9..26ee524acda 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -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 diff --git a/src/xdisp.c b/src/xdisp.c index 2b12dd8f557..4383c497d7a 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -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); |
