changeset 13519:aee6ea2166bc

(display_text_line): Handle redisplay_end_trigger before getting the face of the next character. Reset next_face_change.
author Richard M. Stallman <rms@gnu.org>
date Sat, 11 Nov 1995 22:12:30 +0000
parents 9e55dae21315
children 8c7a3533a688
files src/xdisp.c
diffstat 1 files changed, 14 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/src/xdisp.c	Sat Nov 11 20:52:52 1995 +0000
+++ b/src/xdisp.c	Sat Nov 11 22:12:30 1995 +0000
@@ -2711,19 +2711,10 @@
 	      break;
 	    }
 
-#ifdef HAVE_FACES
-	  /* Did we hit a face change?  Figure out what face we should
-	     use now.  We also hit this the first time through the
-	     loop, to see what face we should start with.  */
-	  if (pos >= next_face_change && (FRAME_WINDOW_P (f)))
-	    current_face = compute_char_face (f, w, pos,
-					      region_beg, region_end,
-					      &next_face_change, pos + 50, 0);
-#endif
-
 	  /* Figure out where (if at all) the
 	     redisplay_end_trigger-hook should run.  */
-	  if (MARKERP (w->redisplay_end_trigger))
+	  if (MARKERP (w->redisplay_end_trigger)
+	      && XMARKER (w->redisplay_end_trigger)->buffer != 0)
 	    e_t_h = marker_position (w->redisplay_end_trigger);
 	  else if (INTEGERP (w->redisplay_end_trigger))
 	    e_t_h = XINT (w->redisplay_end_trigger);
@@ -2737,8 +2728,20 @@
 	      Frun_hooks (1, &Qredisplay_end_trigger_hook);
 	      w->redisplay_end_trigger = Qnil;
 	      e_t_h = ZV;
+	      /* Notice if it changed the face of this character.  */
+	      next_face_change = pos;
 	    }
 
+#ifdef HAVE_FACES
+	  /* Did we hit a face change?  Figure out what face we should
+	     use now.  We also hit this the first time through the
+	     loop, to see what face we should start with.  */
+	  if (pos >= next_face_change && (FRAME_WINDOW_P (f)))
+	    current_face = compute_char_face (f, w, pos,
+					      region_beg, region_end,
+					      &next_face_change, pos + 50, 0);
+#endif
+
 	  /* Compute the next place we need to stop
 	     and do something special; set PAUSE.  */