diff options
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.") | |||
| 1844 | 1844 | ||
| 1845 | /* If the overlay has changed buffers, do a thorough redisplay. */ | 1845 | /* If the overlay has changed buffers, do a thorough redisplay. */ |
| 1846 | if (!EQ (buffer, obuffer)) | 1846 | if (!EQ (buffer, obuffer)) |
| 1847 | windows_or_buffers_changed = 1; | 1847 | { |
| 1848 | /* Redisplay where the overlay was. */ | ||
| 1849 | if (!NILP (obuffer)) | ||
| 1850 | { | ||
| 1851 | Lisp_Object o_beg; | ||
| 1852 | Lisp_Object o_end; | ||
| 1853 | |||
| 1854 | o_beg = OVERLAY_START (overlay); | ||
| 1855 | o_end = OVERLAY_END (overlay); | ||
| 1856 | o_beg = OVERLAY_POSITION (o_beg); | ||
| 1857 | o_end = OVERLAY_POSITION (o_end); | ||
| 1858 | |||
| 1859 | redisplay_region (b, XINT (o_beg), XINT (o_end)); | ||
| 1860 | } | ||
| 1861 | |||
| 1862 | /* Redisplay where the overlay is going to be. */ | ||
| 1863 | redisplay_region (ob, beg, end); | ||
| 1864 | |||
| 1865 | /* Don't limit redisplay to the selected window. */ | ||
| 1866 | windows_or_buffers_changed = 1; | ||
| 1867 | } | ||
| 1848 | else | 1868 | else |
| 1849 | /* Redisplay the area the overlay has just left, or just enclosed. */ | 1869 | /* Redisplay the area the overlay has just left, or just enclosed. */ |
| 1850 | { | 1870 | { |