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 @@ | |||
| 1 | 2014-08-31 Eli Zaretskii <eliz@gnu.org> | ||
| 2 | |||
| 3 | * xdisp.c (get_glyph_string_clip_rects): Don't let the width of a | ||
| 4 | clipping rectangle become negative (i.e. large positive, since | ||
| 5 | it's an unsigned data type). This can happen in R2L hscrolled | ||
| 6 | glyph rows, and caused us to draw the cursor glyph on the fringe. | ||
| 7 | For the details, see | ||
| 8 | http://lists.gnu.org/archive/html/emacs-devel/2014-08/msg00543.html. | ||
| 9 | |||
| 1 | 2014-08-31 Ken Brown <kbrown@cornell.edu> | 10 | 2014-08-31 Ken Brown <kbrown@cornell.edu> |
| 2 | 11 | ||
| 3 | * gmalloc.c: Don't include <stdlib.h>. Declare system malloc and | 12 | * 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 | |||
| 2174 | 2174 | ||
| 2175 | if (s->x > r.x) | 2175 | if (s->x > r.x) |
| 2176 | { | 2176 | { |
| 2177 | r.width -= s->x - r.x; | 2177 | if (r.width >= s->x - r.x) |
| 2178 | r.width -= s->x - r.x; | ||
| 2179 | else /* R2L hscrolled row with cursor outside text area */ | ||
| 2180 | r.width = 0; | ||
| 2178 | r.x = s->x; | 2181 | r.x = s->x; |
| 2179 | } | 2182 | } |
| 2180 | r.width = min (r.width, glyph->pixel_width); | 2183 | r.width = min (r.width, glyph->pixel_width); |