From 1aa462385e6d1fbb0fb5230415eca1a90b756718 Mon Sep 17 00:00:00 2001 From: nick black Date: Sun, 19 Jan 2020 23:45:55 -0500 Subject: [PATCH] detect ctrl+letter, prep ncinput appropriately #228 --- data/blackmage.png | Bin 7508 -> 7272 bytes src/lib/input.c | 8 ++++++++ 2 files changed, 8 insertions(+) diff --git a/data/blackmage.png b/data/blackmage.png index 6fd789af0c7e0d625172da96595640e71f76a31f..b613622843c42014ce0d2c418b880049aa4b7089 100644 GIT binary patch delta 7099 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%0A?UaJaRA1f5HS) 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 diff --git a/src/lib/input.c b/src/lib/input.c index 163aeea95..c6c9f629f 100644 --- a/src/lib/input.c +++ b/src/lib/input.c @@ -311,8 +311,16 @@ handle_ncinput(notcurses* nc, ncinput* ni){ memset(ni, 0, sizeof(*ni)); } char32_t r = handle_input(nc, ni); + // ctrl (*without* alt) + letter maps to [1..26], and is independent of shift + bool ctrl = r > 0 && r <= 26; + if(ctrl){ + r += 'A' - 1; + } if(ni){ ni->id = r; + if(ctrl){ + ni->ctrl = true; + } } return r; }