]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix display of images in R2L screen lines
authorEli Zaretskii <eliz@gnu.org>
Sat, 17 Jan 2015 18:32:16 +0000 (20:32 +0200)
committerEli Zaretskii <eliz@gnu.org>
Sat, 17 Jan 2015 18:32:16 +0000 (20:32 +0200)
 src/xdisp.c (produce_image_glyph): Fix display of images in R2L
 screen lines: prepend the new glyph to the ones already there
 instead of appending it.

src/ChangeLog
src/xdisp.c

index a90cc41e6018c605513d881848da3a4b750183e1..ad4a85ae487c7829b55e5d97a465035b29dc903d 100644 (file)
@@ -1,3 +1,9 @@
+2015-01-17  Eli Zaretskii  <eliz@gnu.org>
+
+       * xdisp.c (produce_image_glyph): Fix display of images in R2L
+       screen lines: prepend the new glyph to the ones already there
+       instead of appending it.
+
 2015-01-14  Eli Zaretskii  <eliz@gnu.org>
 
        * w32fns.c (w32_set_title_bar_text): New function, including
index a1cc286512bc6258cfbe33835834d39987307bca..b1125d324c2c5cc6c98b43a1eb3f749da012283d 100644 (file)
@@ -25428,6 +25428,15 @@ produce_image_glyph (struct it *it)
       enum glyph_row_area area = it->area;
 
       glyph = it->glyph_row->glyphs[area] + it->glyph_row->used[area];
+      if (it->glyph_row->reversed_p)
+       {
+         struct glyph *g;
+
+         /* Make room for the new glyph.  */
+         for (g = glyph - 1; g >= it->glyph_row->glyphs[it->area]; g--)
+           g[1] = *g;
+         glyph = it->glyph_row->glyphs[it->area];
+       }
       if (glyph < it->glyph_row->glyphs[area + 1])
        {
          glyph->charpos = CHARPOS (it->position);