summaryrefslogtreecommitdiff
path: root/src/apprt/embedded.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/apprt/embedded.zig')
-rw-r--r--src/apprt/embedded.zig20
1 files changed, 5 insertions, 15 deletions
diff --git a/src/apprt/embedded.zig b/src/apprt/embedded.zig
index ffcf7fdbe..18674bc38 100644
--- a/src/apprt/embedded.zig
+++ b/src/apprt/embedded.zig
@@ -224,6 +224,7 @@ pub const App = struct {
const result: input.Keymap.Translation = if (event_text) |text| .{
.text = text,
.composing = event.composing,
+ .mods = translate_mods,
} else try self.keymap.translate(
&buf,
switch (target) {
@@ -231,14 +232,7 @@ pub const App = struct {
.surface => |surface| &surface.keymap_state,
},
@intCast(keycode),
- if (comptime builtin.target.isDarwin()) mods: {
- // On macOS we strip ctrl because UCKeyTranslate
- // converts to the masked values (i.e. ctrl+c becomes 3)
- // and we don't want that behavior.
- var v = translate_mods;
- v.ctrl = false;
- break :mods v;
- } else translate_mods,
+ translate_mods,
);
// TODO(mitchellh): I think we can get rid of the above keymap
@@ -275,16 +269,12 @@ pub const App = struct {
// then we clear the text. We handle non-printables in the
// key encoder manual (such as tab, ctrl+c, etc.)
if (result.text.len == 1 and result.text[0] < 0x20) {
- break :translate .{ .composing = false, .text = "" };
+ break :translate .{};
}
}
break :translate result;
- } else .{ .composing = false, .text = "" };
-
- // UCKeyTranslate always consumes all mods, so if we have any output
- // then we've consumed our translate mods.
- const consumed_mods: input.Mods = if (result.text.len > 0) translate_mods else .{};
+ } else .{};
// We need to always do a translation with no modifiers at all in
// order to get the "unshifted_codepoint" for the key event.
@@ -356,7 +346,7 @@ pub const App = struct {
.key = key,
.physical_key = physical_key,
.mods = mods,
- .consumed_mods = consumed_mods,
+ .consumed_mods = result.mods,
.composing = result.composing,
.utf8 = result.text,
.unshifted_codepoint = unshifted_codepoint,