comparison src/popupwin.c @ 18004:6006bb74bd52 v8.1.1998

patch 8.1.1998: redraw even when no popup window filter was invoked Commit: https://github.com/vim/vim/commit/fbb3bc89b3ae29b5d42cc5951db67e2e71a22880 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Sep 7 14:33:36 2019 +0200 patch 8.1.1998: redraw even when no popup window filter was invoked Problem: Redraw even when no popup window filter was invoked. Solution: Only redraw when must_redraw was set to a larger value.
author Bram Moolenaar <Bram@vim.org>
date Sat, 07 Sep 2019 14:45:03 +0200
parents 2fdbcecab216
children 56032a704448
comparison
equal deleted inserted replaced
18003:f4e09b355181 18004:6006bb74bd52
2777 static int recursive = FALSE; 2777 static int recursive = FALSE;
2778 int res = FALSE; 2778 int res = FALSE;
2779 win_T *wp; 2779 win_T *wp;
2780 int save_KeyTyped = KeyTyped; 2780 int save_KeyTyped = KeyTyped;
2781 int state; 2781 int state;
2782 int was_must_redraw = must_redraw;
2782 2783
2783 if (recursive) 2784 if (recursive)
2784 return FALSE; 2785 return FALSE;
2785 recursive = TRUE; 2786 recursive = TRUE;
2786 2787
2800 while (!res && (wp = find_next_popup(FALSE)) != NULL) 2801 while (!res && (wp = find_next_popup(FALSE)) != NULL)
2801 if (wp->w_filter_cb.cb_name != NULL 2802 if (wp->w_filter_cb.cb_name != NULL
2802 && (wp->w_filter_mode & state) != 0) 2803 && (wp->w_filter_mode & state) != 0)
2803 res = invoke_popup_filter(wp, c); 2804 res = invoke_popup_filter(wp, c);
2804 2805
2805 if (must_redraw) 2806 if (must_redraw > was_must_redraw)
2806 redraw_after_callback(FALSE); 2807 redraw_after_callback(FALSE);
2807 recursive = FALSE; 2808 recursive = FALSE;
2808 KeyTyped = save_KeyTyped; 2809 KeyTyped = save_KeyTyped;
2809 return res; 2810 return res;
2810 } 2811 }