diff options
| author | Eli Zaretskii | 2015-08-01 15:32:48 +0300 |
|---|---|---|
| committer | Eli Zaretskii | 2015-08-01 15:32:48 +0300 |
| commit | 08d65696c947b09d4c32606f279c3c2594e99e16 (patch) | |
| tree | 63f968c71a978ded0366a33a076db49b06ed38bb /src | |
| parent | bdd370bb5bd63139870b69775fd0bdfeeb81d5b5 (diff) | |
| download | emacs-08d65696c947b09d4c32606f279c3c2594e99e16.tar.gz emacs-08d65696c947b09d4c32606f279c3c2594e99e16.zip | |
Prevent incorrect display when 'line-spacing' variable is set
* src/xdisp.c (try_window_id): Give up this optimization if the
buffer has its 'line-spacing' variable set non-nil.
Diffstat (limited to 'src')
| -rw-r--r-- | src/xdisp.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/xdisp.c b/src/xdisp.c index 03b03d06b3e..e45cb8702b2 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -17753,7 +17753,7 @@ try_window_id (struct window *w) | |||
| 17753 | #if false | 17753 | #if false |
| 17754 | #define GIVE_UP(X) \ | 17754 | #define GIVE_UP(X) \ |
| 17755 | do { \ | 17755 | do { \ |
| 17756 | fprintf (stderr, "try_window_id give up %d\n", (X)); \ | 17756 | TRACE ((stderr, "try_window_id give up %d\n", (X))); \ |
| 17757 | return 0; \ | 17757 | return 0; \ |
| 17758 | } while (false) | 17758 | } while (false) |
| 17759 | #else | 17759 | #else |
| @@ -17775,7 +17775,7 @@ try_window_id (struct window *w) | |||
| 17775 | changed in the buffer displayed by the window, so give up if they | 17775 | changed in the buffer displayed by the window, so give up if they |
| 17776 | have. */ | 17776 | have. */ |
| 17777 | if (w->last_overlay_modified != OVERLAY_MODIFF) | 17777 | if (w->last_overlay_modified != OVERLAY_MODIFF) |
| 17778 | GIVE_UP (21); | 17778 | GIVE_UP (200); |
| 17779 | 17779 | ||
| 17780 | /* Verify that narrowing has not changed. | 17780 | /* Verify that narrowing has not changed. |
| 17781 | Also verify that we were not told to prevent redisplay optimizations. | 17781 | Also verify that we were not told to prevent redisplay optimizations. |
| @@ -17835,6 +17835,11 @@ try_window_id (struct window *w) | |||
| 17835 | && NILP (BVAR (XBUFFER (w->contents), bidi_paragraph_direction))) | 17835 | && NILP (BVAR (XBUFFER (w->contents), bidi_paragraph_direction))) |
| 17836 | GIVE_UP (22); | 17836 | GIVE_UP (22); |
| 17837 | 17837 | ||
| 17838 | /* Give up if the buffer has line-spacing set, as Lisp-level changes | ||
| 17839 | to that variable require thorough redisplay. */ | ||
| 17840 | if (!NILP (BVAR (XBUFFER (w->contents), extra_line_spacing))) | ||
| 17841 | GIVE_UP (23); | ||
| 17842 | |||
| 17838 | /* Make sure beg_unchanged and end_unchanged are up to date. Do it | 17843 | /* Make sure beg_unchanged and end_unchanged are up to date. Do it |
| 17839 | only if buffer has really changed. The reason is that the gap is | 17844 | only if buffer has really changed. The reason is that the gap is |
| 17840 | initially at Z for freshly visited files. The code below would | 17845 | initially at Z for freshly visited files. The code below would |