summaryrefslogtreecommitdiff
path: root/src/xdisp.c
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>1995-11-11 22:12:30 +0000
committerRichard M. Stallman <rms@gnu.org>1995-11-11 22:12:30 +0000
commit69629cf3883882a1df843968b189e019117f3e02 (patch)
treef70d181e9d075c0f95d794e8f0a91f3b6b708ba1 /src/xdisp.c
parented7e9ac5f87cf01489d810139bd7ee49631a5d33 (diff)
downloademacs-69629cf3883882a1df843968b189e019117f3e02.tar.gz
(display_text_line): Handle redisplay_end_trigger
before getting the face of the next character. Reset next_face_change.
Diffstat (limited to 'src/xdisp.c')
-rw-r--r--src/xdisp.c25
1 files changed, 14 insertions, 11 deletions
diff --git a/src/xdisp.c b/src/xdisp.c
index 2d1b7d4c840..ead4b78f8a0 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -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. */