From 4bc445f080ff53268ff1af26564d19c35c17e980 Mon Sep 17 00:00:00 2001 From: nicm Date: Mon, 18 Nov 2019 09:42:09 +0000 Subject: [PATCH] Keep modifiers on backspace when translating it. --- input-keys.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/input-keys.c b/input-keys.c index 1325e813..01f9ad9d 100644 --- a/input-keys.c +++ b/input-keys.c @@ -157,7 +157,7 @@ input_key(struct window_pane *wp, key_code key, struct mouse_event *m) u_int i; size_t dlen; char *out; - key_code justkey; + key_code justkey, newkey; struct utf8_data ud; log_debug("writing key 0x%llx (%s) to %%%u", key, @@ -179,9 +179,10 @@ input_key(struct window_pane *wp, key_code key, struct mouse_event *m) /* Is this backspace? */ if ((key & KEYC_MASK_KEY) == KEYC_BSPACE) { - key = options_get_number(global_options, "backspace"); - if (key >= 0x7f) - key = '\177'; + newkey = options_get_number(global_options, "backspace"); + if (newkey >= 0x7f) + newkey = '\177'; + key = newkey|(key & KEYC_MASK_MOD); } /*