diff options
author | Richard M. Stallman <rms@gnu.org> | 1997-05-06 03:42:02 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 1997-05-06 03:42:02 +0000 |
commit | 3ee4159a4e77c957178791ca394266ab5e1ab235 (patch) | |
tree | dac12e8c81437db956f1af31a163726f9f8751bf /src/xdisp.c | |
parent | 396a830c5e1c05bf63f78f1080d75b249ee38cf6 (diff) | |
download | emacs-3ee4159a4e77c957178791ca394266ab5e1ab235.tar.gz |
(display_text_line): Clear region_showing to Qnil if the
window should not show a region.
(redisplay_internal): Do update region_showing when ! all_windows.
Diffstat (limited to 'src/xdisp.c')
-rw-r--r-- | src/xdisp.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/xdisp.c b/src/xdisp.c index e777336e6c7..37cf8f18208 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -1270,6 +1270,15 @@ update: w->last_had_star = (BUF_MODIFF (XBUFFER (w->buffer)) > BUF_SAVE_MODIFF (XBUFFER (w->buffer)) ? Qt : Qnil); + + /* Record if we are showing a region, so can make sure to + update it fully at next redisplay. */ + w->region_showing = (!NILP (Vtransient_mark_mode) + && w == XWINDOW (current_buffer->last_selected_window) + && !NILP (XBUFFER (w->buffer)->mark_active) + ? Fmarker_position (XBUFFER (w->buffer)->mark) + : Qnil); + w->window_end_valid = w->buffer; last_arrow_position = Voverlay_arrow_position; last_arrow_string = Voverlay_arrow_string; @@ -2850,7 +2859,10 @@ display_text_line (w, start, vpos, hpos, taboffset, ovstr_done) w->region_showing = Qt; } else - region_beg = region_end = -1; + { + region_beg = region_end = -1; + w->region_showing = Qnil; + } if (MINI_WINDOW_P (w) && start == BEG |