changeset 7985:f6c309d5d314

(Fmove_overlay): Call redisplay_region even when changing to a different buffer.
author Richard M. Stallman <rms@gnu.org>
date Mon, 20 Jun 1994 23:10:07 +0000
parents bc835acd2ade
children b2419e15cbbd
files src/buffer.c
diffstat 1 files changed, 21 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/buffer.c	Mon Jun 20 22:52:49 1994 +0000
+++ b/src/buffer.c	Mon Jun 20 23:10:07 1994 +0000
@@ -1844,7 +1844,27 @@
 
   /* 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.  */
     {