summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2022-02-21 22:12:57 +0200
committerEli Zaretskii <eliz@gnu.org>2022-02-21 22:12:57 +0200
commit666e40a109ea6c0079467e72c806bb04191ff4cc (patch)
tree6190c5d946840798e7cd966ef7ca5df2b13f8cd3
parent68d134cf0f784601e50cefc4056eb0ace510a982 (diff)
downloademacs-666e40a109ea6c0079467e72c806bb04191ff4cc.tar.gz
Fix 'display-line-numbers-mode' in hide-show buffers
* src/xdisp.c (redisplay_internal): Disable redisplay optimizations that consider just the current line, when 'display-line-numbers-mode' is turned on in the buffer. (Bug#54091)
-rw-r--r--src/xdisp.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/xdisp.c b/src/xdisp.c
index aa70b933f14..3f283d6732a 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -15860,6 +15860,14 @@ redisplay_internal (void)
/* Point must be on the line that we have info recorded about. */
&& PT >= CHARPOS (tlbufpos)
&& PT <= Z - CHARPOS (tlendpos)
+ /* FIXME: The following condition is only needed when
+ significant parts of the buffer are hidden (e.g., under
+ hs-minor-mode), but there doesn't seem to be a simple way of
+ detecting that, so we always disable the one-line redisplay
+ optimizations whenever display-line-numbers-mode is turned on
+ in the buffer. */
+ && (NILP (Vdisplay_line_numbers)
+ || EQ (Vdisplay_line_numbers, Qvisual))
/* All text outside that line, including its final newline,
must be unchanged. */
&& text_outside_line_unchanged_p (w, CHARPOS (tlbufpos),