summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/indent.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/indent.c b/src/indent.c
index 33bf424b344..ec38ea798c7 100644
--- a/src/indent.c
+++ b/src/indent.c
@@ -2130,6 +2130,15 @@ whether or not it is currently displayed in some window. */)
&& it.method == GET_FROM_BUFFER
&& it.c == '\n')
it_overshoot_count = 1;
+ else if (it_overshoot_count == 1 && it.vpos == 0
+ && it.current_x < it.last_visible_x)
+ {
+ /* If we came to the same screen line as the one where
+ we started, we didn't overshoot the line, and won't
+ need to backtrack after all. This happens, for
+ example, when PT is in the middle of a composition. */
+ it_overshoot_count = 0;
+ }
else if (disp_string_at_start_p && it.vpos > 0)
{
/* This is the case of a display string that spans