patch 9.1.1230: inconsistent CTRL-C behaviour for popup windows
Problem: Ctrl-C closes popup windows that have a filter callback,
but does not close popups without a filter callback.
Solution: Modified popup_do_filter() to also close popups without
filter callback when Ctrl-C is pressed (glepnir).
fixes: #16839
closes: #16928
Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/src/popupwin.c b/src/popupwin.c
index 2032492..76ebf38 100644
--- a/src/popupwin.c
+++ b/src/popupwin.c
@@ -3586,6 +3586,20 @@
&& (wp->w_filter_mode & state) != 0)
res = invoke_popup_filter(wp, c);
+ // when Ctrl-C and no popup has been processed (res is still FALSE)
+ // Try to find and close a popup that has no filter callback
+ if (c == Ctrl_C && res == FALSE)
+ {
+ popup_reset_handled(POPUP_HANDLED_2);
+ wp = find_next_popup(FALSE, POPUP_HANDLED_2);
+ if (wp != NULL)
+ {
+ popup_close_with_retval(wp, -1);
+ res = TRUE;
+ }
+ }
+
+
if (must_redraw > was_must_redraw)
{
int save_got_int = got_int;