Fix bug #9530 with incorrect display of zero-width stretch.
authorEli Zaretskii <eliz@gnu.org>
Sat, 17 Sep 2011 18:21:24 +0000 (21:21 +0300)
committerEli Zaretskii <eliz@gnu.org>
Sat, 17 Sep 2011 18:21:24 +0000 (21:21 +0300)
 src/xdisp.c (produce_stretch_glyph): Another fix for changes made on
 2011-08-30T17:32:44Z!eliz@gnu.org.

src/ChangeLog
src/xdisp.c

index a6d890c..97b7279 100644 (file)
@@ -1,3 +1,8 @@
+2011-09-17  Eli Zaretskii  <eliz@gnu.org>
+
+       * xdisp.c (produce_stretch_glyph): Another fix for changes made on
+       2011-08-30T17:32:44Z!eliz@gnu.org.  (Bug#9530)
+
 2011-09-17  Eli Zaretskii  <eliz@gnu.org>
 
        * xdisp.c (reseat_at_next_visible_line_start): Keep information
index 3cb9f30..f889815 100644 (file)
@@ -23298,14 +23298,7 @@ produce_stretch_glyph (struct it *it)
        object = it->w->buffer;
 #ifdef HAVE_WINDOW_SYSTEM
       if (FRAME_WINDOW_P (it->f))
-       {
-         append_stretch_glyph (it, object, width, height, ascent);
-         it->pixel_width = width;
-         it->ascent = it->phys_ascent = ascent;
-         it->descent = it->phys_descent = height - it->ascent;
-         it->nglyphs = width > 0 && height > 0 ? 1 : 0;
-         take_vertical_position_into_account (it);
-       }
+       append_stretch_glyph (it, object, width, height, ascent);
       else
 #endif
        {
@@ -23317,6 +23310,19 @@ produce_stretch_glyph (struct it *it)
          it->object = o_object;
        }
     }
+
+  it->pixel_width = width;
+#ifdef HAVE_WINDOW_SYSTEM
+  if (FRAME_WINDOW_P (it->f))
+    {
+      it->ascent = it->phys_ascent = ascent;
+      it->descent = it->phys_descent = height - it->ascent;
+      it->nglyphs = width > 0 && height > 0 ? 1 : 0;
+      take_vertical_position_into_account (it);
+    }
+  else
+#endif
+    it->nglyphs = width;
 }
 
 #ifdef HAVE_WINDOW_SYSTEM