diff --git a/atom/common/native_mate_converters/blink_converter.cc b/atom/common/native_mate_converters/blink_converter.cc index 0021e8738380..fcc4a7654ddd 100644 --- a/atom/common/native_mate_converters/blink_converter.cc +++ b/atom/common/native_mate_converters/blink_converter.cc @@ -224,6 +224,8 @@ v8::Local Converter::ToV8( else if (in.type == blink::WebInputEvent::Type::KeyUp) dict.Set("type", "keyUp"); dict.Set("key", ui::KeycodeConverter::DomKeyToKeyString(in.domKey)); + dict.Set("code", + ui::KeycodeConverter::DomCodeToCodeString(static_cast(in.domCode))); using Modifiers = blink::WebInputEvent::Modifiers; dict.Set("isAutoRepeat", (in.modifiers & Modifiers::IsAutoRepeat) != 0); diff --git a/docs/api/web-contents.md b/docs/api/web-contents.md index 77cd2d4c6b4a..0dd56cda16f6 100644 --- a/docs/api/web-contents.md +++ b/docs/api/web-contents.md @@ -240,6 +240,7 @@ Returns: * `input` Object - Input properties * `type` String - Either `keyUp` or `keyDown` * `key` String - Equivalent to [KeyboardEvent.key][keyboardevent] + * `code` String - Equivalent to [KeyboardEvent.code][keyboardevent] * `isAutoRepeat` Boolean - Equivalent to [KeyboardEvent.repeat][keyboardevent] * `shift` Boolean - Equivalent to [KeyboardEvent.shiftKey][keyboardevent] * `control` Boolean - Equivalent to [KeyboardEvent.controlKey][keyboardevent] diff --git a/spec/api-web-contents-spec.js b/spec/api-web-contents-spec.js index fb9c17125aa2..a4d8a7d1e43f 100644 --- a/spec/api-web-contents-spec.js +++ b/spec/api-web-contents-spec.js @@ -121,6 +121,7 @@ describe('webContents module', function () { w.webContents.once('before-input-event', (event, input) => { assert.equal(input.type, opts.type) assert.equal(input.key, opts.key) + assert.equal(input.code, opts.code) assert.equal(input.isAutoRepeat, opts.isAutoRepeat) assert.equal(input.shift, opts.shift) assert.equal(input.control, opts.control) @@ -148,6 +149,7 @@ describe('webContents module', function () { return testBeforeInput({ type: 'keyDown', key: 'A', + code: 'KeyA', keyCode: 'a', shift: true, control: true, @@ -159,6 +161,7 @@ describe('webContents module', function () { return testBeforeInput({ type: 'keyUp', key: '.', + code: 'Period', keyCode: '.', shift: false, control: true, @@ -170,6 +173,7 @@ describe('webContents module', function () { return testBeforeInput({ type: 'keyUp', key: '!', + code: 'Digit1', keyCode: '1', shift: true, control: false, @@ -181,6 +185,7 @@ describe('webContents module', function () { return testBeforeInput({ type: 'keyUp', key: 'Tab', + code: 'Tab', keyCode: 'Tab', shift: false, control: true,