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.