From 87392ff04606e6b111fc94250006931a8725a16c Mon Sep 17 00:00:00 2001 From: liusi Date: Thu, 2 Feb 2017 16:23:07 +0800 Subject: [PATCH 1/2] 'before-input-event' is missing the code property #8471 --- atom/common/native_mate_converters/blink_converter.cc | 2 ++ docs/api/web-contents.md | 1 + spec/api-web-contents-spec.js | 5 +++++ 3 files changed, 8 insertions(+) diff --git a/atom/common/native_mate_converters/blink_converter.cc b/atom/common/native_mate_converters/blink_converter.cc index 0021e873838..fcc4a7654dd 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 77cd2d4c6b4..0dd56cda16f 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 fb9c17125aa..a4d8a7d1e43 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, From 2cf6a026d86e06d2b592cd17d07727150b189ec7 Mon Sep 17 00:00:00 2001 From: liusy182 Date: Thu, 2 Feb 2017 21:16:30 +0800 Subject: [PATCH 2/2] fix linting error --- atom/common/native_mate_converters/blink_converter.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/atom/common/native_mate_converters/blink_converter.cc b/atom/common/native_mate_converters/blink_converter.cc index fcc4a7654dd..8403b233688 100644 --- a/atom/common/native_mate_converters/blink_converter.cc +++ b/atom/common/native_mate_converters/blink_converter.cc @@ -224,8 +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))); + dict.Set("code", ui::KeycodeConverter::DomCodeToCodeString( + static_cast(in.domCode))); using Modifiers = blink::WebInputEvent::Modifiers; dict.Set("isAutoRepeat", (in.modifiers & Modifiers::IsAutoRepeat) != 0);