Mercurial > vim
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 } |