changeset 103601:c466fe42acdc

* xdisp.c (mouse_face_from_buffer_pos): Fix detection of truncation glyphs (Bug#3686).
author Chong Yidong <cyd@stupidchicken.com>
date Sat, 27 Jun 2009 03:50:23 +0000
parents 02bc348744ed
children c6838f93406e
files src/ChangeLog src/xdisp.c
diffstat 2 files changed, 14 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Sat Jun 27 02:42:05 2009 +0000
+++ b/src/ChangeLog	Sat Jun 27 03:50:23 2009 +0000
@@ -1,10 +1,15 @@
+2009-06-27  Chong Yidong  <cyd@stupidchicken.com>
+
+	* xdisp.c (mouse_face_from_buffer_pos): Fix detection of
+	truncation glyphs (Bug#3686).
+
 2009-06-27  Glenn Morris  <rgm@gnu.org>
 
 	* m/pmax.h: Restore file, with only netbsd portions.
 
 2009-06-26  David Reitter <david.reitter@gmail.com>
 
-	* nsterm.m (keydown): avoid infinite loop
+	* nsterm.m (keydown): Avoid infinite loop.
 
 2009-06-26  Peter Jolly  <peter@jollys.org>  (tiny change)
 
--- a/src/xdisp.c	Sat Jun 27 02:42:05 2009 +0000
+++ b/src/xdisp.c	Sat Jun 27 03:50:23 2009 +0000
@@ -22991,7 +22991,10 @@
 
       /* Skip truncation glyphs at the start of the glyph row.  */
       if (row->displays_text_p)
-	for (; glyph < end && INTEGERP (glyph->object); ++glyph)
+	for (; glyph < end
+	       && INTEGERP (glyph->object)
+	       && glyph->charpos < 0;
+	     ++glyph)
 	  x += glyph->pixel_width;
 
       /* Scan the glyph row, stopping before BEFORE_STRING or
@@ -23039,7 +23042,10 @@
 
   /* Skip truncation glyphs at the start of the row.  */
   if (row->displays_text_p)
-    for (; glyph < end && INTEGERP (glyph->object); ++glyph)
+    for (; glyph < end
+	   && INTEGERP (glyph->object)
+	   && glyph->charpos < 0;
+	 ++glyph)
       x += glyph->pixel_width;
 
   /* Scan the glyph row, stopping at END_CHARPOS or when we encounter