summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>1997-05-06 03:42:02 +0000
committerRichard M. Stallman <rms@gnu.org>1997-05-06 03:42:02 +0000
commit1b252a7f8be7f2de9dd41c723830a28a64aa6df9 (patch)
tree1c7732a33a2f944f87f2d6d4dfff2c87bab60a6e
parent48776c849bb7273df3402c95f799bfb611fe9555 (diff)
downloademacs-1b252a7f8be7f2de9dd41c723830a28a64aa6df9.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.
-rw-r--r--src/xdisp.c14
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