summaryrefslogtreecommitdiff
path: root/src/gui.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-08-01 13:10:14 +0200
committerBram Moolenaar <Bram@vim.org>2020-08-01 13:10:14 +0200
commit4e1d8bd79b87b120bd40afe0eba54a419f8c3aee (patch)
tree607aae6414e535150f3e7f385e5519a6da063c25 /src/gui.c
parentb53da7918c643ef4de1256c37bc8b92413e6dcec (diff)
downloadvim-git-4e1d8bd79b87b120bd40afe0eba54a419f8c3aee.tar.gz
patch 8.2.1335: CTRL-C in the GUI doesn't interruptv8.2.1335
Problem: CTRL-C in the GUI doesn't interrupt. (Sergey Vlasov) Solution: Recognize "C" with CTRL modifier as CTRL-C. (issue #6565)
Diffstat (limited to 'src/gui.c')
-rw-r--r--src/gui.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/gui.c b/src/gui.c
index 4981d7331..e4745547d 100644
--- a/src/gui.c
+++ b/src/gui.c
@@ -5575,3 +5575,24 @@ gui_handle_drop(
entered = FALSE;
}
#endif
+
+/*
+ * Check if "key" is to interrupt us. Handles a key that has not had modifiers
+ * applied yet.
+ * Return the key with modifiers applied if so, NUL if not.
+ */
+ int
+check_for_interrupt(int key, int modifiers_arg)
+{
+ int modifiers = modifiers_arg;
+ int c = merge_modifyOtherKeys(key, &modifiers);
+
+ if ((c == Ctrl_C && ctrl_c_interrupts)
+ || (intr_char != Ctrl_C && c == intr_char))
+ {
+ got_int = TRUE;
+ return c;
+ }
+ return NUL;
+}
+