From 46118f7de2c91b68ab09c5e50bac35780292d701 Mon Sep 17 00:00:00 2001 From: JD Smith Date: Wed, 4 Jun 2025 16:47:48 -0400 Subject: [PATCH] Fix vertical-motion when an image is at EOL under word-wrap * src/xdisp.c (move_it_in_display_line_to): Fix return value under word-wrap when a screen line ends with an image that "just fits". (Bug#67604) (cherry picked from commit 9b30934756ab4872134847ad98350637d690b988) --- src/xdisp.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/xdisp.c b/src/xdisp.c index a55e0b41aea..519194f984a 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -10392,10 +10392,21 @@ move_it_in_display_line_to (struct it *it, if (BUFFER_POS_REACHED_P ()) { if (ITERATOR_AT_END_OF_LINE_P (it)) - result = MOVE_POS_MATCH_OR_ZV; - else - result = MOVE_LINE_CONTINUED; - break; + { + result = MOVE_POS_MATCH_OR_ZV; + break; + } + /* When word-wrapping IMAGES or + STRETCHES which just fit on a line, + do not return early, before the + wrap point can be restored */ + else if ((prev_method != GET_FROM_STRETCH + && prev_method != GET_FROM_IMAGE) + || it->line_wrap != WORD_WRAP) + { + result = MOVE_LINE_CONTINUED; + break; + } } if (ITERATOR_AT_END_OF_LINE_P (it) && (it->line_wrap != WORD_WRAP -- 2.39.5