Mercurial > vim
comparison src/popupwin.c @ 34334:ef421bb0f67e v9.1.0100
patch 9.1.0100: Redrawing can be improved with undo and 'spell'
Commit: https://github.com/vim/vim/commit/f2d90a351159fd6843f450850f52004f42e00183
Author: zeertzjq <zeertzjq@outlook.com>
Date: Mon Feb 12 20:28:01 2024 +0100
patch 9.1.0100: Redrawing can be improved with undo and 'spell'
Problem: When undoing with 'spell', redrawWinline() is called after
changed_lines(), while later win_update() sets redraw type to
UPD_NOT_VALID, even though w_redraw_top and w_redraw_bot are
still valid.
Solution: Only set redraw type to UPD_NOT_VALID when inserting/deleting
lines after parts of window has pending redraw, i.e., when
changed_lines() is called after redrawWinline().
(zeertzjq)
closes: #14019
Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Mon, 12 Feb 2024 20:45:01 +0100 |
parents | 67fa901a2fc6 |
children | a93a9b349a5e |
comparison
equal
deleted
inserted
replaced
34333:5b357f0c7489 | 34334:ef421bb0f67e |
---|---|
3897 int line_cp = line; | 3897 int line_cp = line; |
3898 int col_cp = col; | 3898 int col_cp = col; |
3899 | 3899 |
3900 // The screen position "line" / "col" needs to be | 3900 // The screen position "line" / "col" needs to be |
3901 // redrawn. Figure out what window that is and update | 3901 // redrawn. Figure out what window that is and update |
3902 // w_redraw_top and w_redr_bot. Only needs to be done | 3902 // w_redraw_top and w_redraw_bot. Only needs to be |
3903 // once for each window line. | 3903 // done once for each window line. |
3904 wp = mouse_find_win(&line_cp, &col_cp, IGNORE_POPUP); | 3904 wp = mouse_find_win(&line_cp, &col_cp, IGNORE_POPUP); |
3905 if (wp != NULL) | 3905 if (wp != NULL) |
3906 { | 3906 { |
3907 #if defined(FEAT_TERMINAL) | 3907 #if defined(FEAT_TERMINAL) |
3908 // A terminal window needs to be redrawn. | 3908 // A terminal window needs to be redrawn. |