summaryrefslogtreecommitdiff
path: root/src/buffer.c
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>1994-06-20 23:10:07 +0000
committerRichard M. Stallman <rms@gnu.org>1994-06-20 23:10:07 +0000
commite481efa541a844cbb3675081152214fabc4d288e (patch)
tree6e7a9921a578843ad4690d6330b8560d3a5fd169 /src/buffer.c
parente3adfe0f15296acbdf579f805710ed8821a58d0e (diff)
downloademacs-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.c22
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. */
{