0
0
mirror of https://github.com/vim/vim.git synced 2025-09-23 03:43:49 -04:00

patch 8.1.1493: redrawing with popups is slow and causes flicker

Problem:    Redrawing with popups is slow and causes flicker.
Solution:   Avoid clearing and redrawing using a zindex mask.
This commit is contained in:
Bram Moolenaar
2019-06-08 16:01:13 +02:00
parent 7c348bb5ad
commit 33796b39b9
6 changed files with 225 additions and 57 deletions

View File

@@ -70,6 +70,21 @@ EXTERN schar_T *ScreenLines2 INIT(= NULL);
*/
EXTERN short *TabPageIdxs INIT(= NULL);
#ifdef FEAT_TEXT_PROP
// Array with size Rows x Columns containing zindex of popups.
EXTERN short *popup_mask INIT(= NULL);
// Flag set to TRUE when popup_mask needs to be updated.
EXTERN int popup_mask_refresh INIT(= TRUE);
// Tab that was used to fill popup_mask.
EXTERN tabpage_T *popup_mask_tab INIT(= NULL);
// Zindex in for screen_char(): if lower than the value in "popup_mask"
// drawing the character is skipped.
EXTERN int screen_zindex INIT(= 0);
#endif
EXTERN int screen_Rows INIT(= 0); /* actual size of ScreenLines[] */
EXTERN int screen_Columns INIT(= 0); /* actual size of ScreenLines[] */