From c82ed7283a2bcc9264e93dda3b832d6189b4d331 Mon Sep 17 00:00:00 2001 From: Jim Blandy Date: Fri, 28 May 1993 06:50:23 +0000 Subject: * buffer.c (Fmove_overlay): If the overlay is changing buffers, do a thorough redisplay. --- src/buffer.c | 44 ++++++++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 20 deletions(-) (limited to 'src/buffer.c') diff --git a/src/buffer.c b/src/buffer.c index b50e7d0f1b0..551898163f1 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -1566,26 +1566,30 @@ buffer.") b = XBUFFER (buffer); - /* Redisplay the area the overlay has just left, or just enclosed. */ - { - Lisp_Object o_beg = OVERLAY_START (overlay); - Lisp_Object o_end = OVERLAY_END (overlay); - int change_beg, change_end; - - o_beg = OVERLAY_POSITION (o_beg); - o_end = OVERLAY_POSITION (o_end); - - if (XINT (o_beg) == XINT (beg)) - redisplay_region (b, XINT (o_end), XINT (end)); - else if (XINT (o_end) == XINT (end)) - redisplay_region (b, XINT (o_beg), XINT (beg)); - else - { - if (XINT (beg) < XINT (o_beg)) o_beg = beg; - if (XINT (end) > XINT (o_end)) o_end = end; - redisplay_region (b, XINT (o_beg), XINT (o_end)); - } - } + /* If the overlay has changed buffers, do a thorough redisplay. */ + if (! EQ (buffer, XMARKER (OVERLAY_START (overlay))->buffer)) + windows_or_buffers_changed = 1; + else + /* Redisplay the area the overlay has just left, or just enclosed. */ + { + Lisp_Object o_beg = OVERLAY_START (overlay); + Lisp_Object o_end = OVERLAY_END (overlay); + int change_beg, change_end; + + o_beg = OVERLAY_POSITION (o_beg); + o_end = OVERLAY_POSITION (o_end); + + if (XINT (o_beg) == XINT (beg)) + redisplay_region (b, XINT (o_end), XINT (end)); + else if (XINT (o_end) == XINT (end)) + redisplay_region (b, XINT (o_beg), XINT (beg)); + else + { + if (XINT (beg) < XINT (o_beg)) o_beg = beg; + if (XINT (end) > XINT (o_end)) o_end = end; + redisplay_region (b, XINT (o_beg), XINT (o_end)); + } + } b->overlays_before = Fdelq (overlay, b->overlays_before); b->overlays_after = Fdelq (overlay, b->overlays_after); -- cgit v1.2.1