]> git.eshelyaron.com Git - emacs.git/commitdiff
(display_text_line): Handle redisplay_end_trigger
authorRichard M. Stallman <rms@gnu.org>
Sat, 11 Nov 1995 22:12:30 +0000 (22:12 +0000)
committerRichard M. Stallman <rms@gnu.org>
Sat, 11 Nov 1995 22:12:30 +0000 (22:12 +0000)
before getting the face of the next character.  Reset next_face_change.

src/xdisp.c

index 2d1b7d4c84063dbf4ea501b99c16b4ded7a1fe7d..ead4b78f8a06ecdea1d3bd1a7f7092dcff516aa8 100644 (file)
@@ -2711,19 +2711,10 @@ display_text_line (w, start, vpos, hpos, taboffset)
              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 @@ display_text_line (w, start, vpos, hpos, taboffset)
              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.  */