diff options
author | Richard M. Stallman <rms@gnu.org> | 1994-06-20 23:10:07 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 1994-06-20 23:10:07 +0000 |
commit | e481efa541a844cbb3675081152214fabc4d288e (patch) | |
tree | 6e7a9921a578843ad4690d6330b8560d3a5fd169 /src/buffer.c | |
parent | e3adfe0f15296acbdf579f805710ed8821a58d0e (diff) | |
download | emacs-e481efa541a844cbb3675081152214fabc4d288e.tar.gz |
(Fmove_overlay): Call redisplay_region even when
changing to a different buffer.
Diffstat (limited to 'src/buffer.c')
-rw-r--r-- | src/buffer.c | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/src/buffer.c b/src/buffer.c index 8ebfe98388c..8edd937b957 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -1844,7 +1844,27 @@ buffer.") /* If the overlay has changed buffers, do a thorough redisplay. */ if (!EQ (buffer, obuffer)) - windows_or_buffers_changed = 1; + { + /* Redisplay where the overlay was. */ + if (!NILP (obuffer)) + { + Lisp_Object o_beg; + Lisp_Object o_end; + + o_beg = OVERLAY_START (overlay); + o_end = OVERLAY_END (overlay); + o_beg = OVERLAY_POSITION (o_beg); + o_end = OVERLAY_POSITION (o_end); + + redisplay_region (b, XINT (o_beg), XINT (o_end)); + } + + /* Redisplay where the overlay is going to be. */ + redisplay_region (ob, beg, end); + + /* Don't limit redisplay to the selected window. */ + windows_or_buffers_changed = 1; + } else /* Redisplay the area the overlay has just left, or just enclosed. */ { |