diff --git a/src/cdp/domains/input.zig b/src/cdp/domains/input.zig index a3e43d40..1767ba72 100644 --- a/src/cdp/domains/input.zig +++ b/src/cdp/domains/input.zig @@ -52,17 +52,19 @@ fn dispatchKeyEvent(cmd: *CDP.Command) !void { try cmd.sendResult(null, .{}); - // quickly ignore types we know we don't handle - switch (params.type) { - .keyUp, .rawKeyDown, .char => return, - .keyDown => {}, - } + // rawKeyDown is a Chrome-internal event type not used for JS dispatch + if (params.type == .rawKeyDown) return; const bc = cmd.browser_context orelse return; const page = bc.session.currentPage() orelse return; const KeyboardEvent = @import("../../browser/webapi/event/KeyboardEvent.zig"); - const keyboard_event = try KeyboardEvent.initTrusted(comptime .wrap("keydown"), .{ + const keyboard_event = try KeyboardEvent.initTrusted(switch (params.type) { + .keyDown => comptime .wrap("keydown"), + .keyUp => comptime .wrap("keyup"), + .char => comptime .wrap("keypress"), + .rawKeyDown => unreachable, + }, .{ .key = params.key, .code = params.code, .altKey = params.modifiers & 1 == 1,