From 666e40a109ea6c0079467e72c806bb04191ff4cc Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Mon, 21 Feb 2022 22:12:57 +0200 Subject: [PATCH] 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) --- src/xdisp.c | 8 ++++++++ 1 file changed, 8 insertions(+) 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), -- 2.39.2