From 3656403f2df4a9c56b203aae00ff0055a0139b25 Mon Sep 17 00:00:00 2001 From: Joel Einbinder Date: Fri, 14 Feb 2020 18:37:02 -0800 Subject: [PATCH] fix(keyboard): Add mac editing commands for NumpadEnter (#1026) This should fix NumpadEnter on webkit for mac. --- src/usKeyboardLayout.ts | 6 ++++++ test/keyboard.spec.js | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/usKeyboardLayout.ts b/src/usKeyboardLayout.ts index 40d7f7a9d6..c9a93da873 100644 --- a/src/usKeyboardLayout.ts +++ b/src/usKeyboardLayout.ts @@ -292,6 +292,7 @@ export const macEditingCommands: {[key: string]: string|string[]} = { 'Backspace': 'deleteBackward:', 'Tab': 'insertTab:', 'Enter': 'insertNewline:', + 'NumpadEnter': 'insertNewline:', 'Escape': 'cancelOperation:', 'ArrowUp': 'moveUp:', 'ArrowDown': 'moveDown:', @@ -305,6 +306,7 @@ export const macEditingCommands: {[key: string]: string|string[]} = { 'PageDown': 'scrollPageDown:', 'Shift+Backspace': 'deleteBackward:', 'Shift+Enter': 'insertNewline:', + 'Shift+NumpadEnter': 'insertNewline:', 'Shift+Tab': 'insertBacktab:', 'Shift+Escape': 'cancelOperation:', 'Shift+ArrowUp': 'moveUpAndModifySelection:', @@ -320,6 +322,7 @@ export const macEditingCommands: {[key: string]: string|string[]} = { 'Shift+Numpad5': 'delete:', 'Control+Tab': 'selectNextKeyView:', 'Control+Enter': 'insertLineBreak:', + 'Control+NumpadEnter': 'insertLineBreak:', 'Control+Quote': 'insertSingleQuoteIgnoringSubstitution:', 'Control+KeyA': 'moveToBeginningOfParagraph:', 'Control+KeyB': 'moveBackward:', @@ -341,6 +344,7 @@ export const macEditingCommands: {[key: string]: string|string[]} = { 'Control+ArrowLeft': 'moveToLeftEndOfLine:', 'Control+ArrowRight': 'moveToRightEndOfLine:', 'Shift+Control+Enter': 'insertLineBreak:', + 'Shift+Control+NumpadEnter': 'insertLineBreak:', 'Shift+Control+Tab': 'selectPreviousKeyView:', 'Shift+Control+Quote': 'insertDoubleQuoteIgnoringSubstitution:', 'Shift+Control+KeyA': 'moveToBeginningOfParagraphAndModifySelection:', @@ -358,6 +362,7 @@ export const macEditingCommands: {[key: string]: string|string[]} = { 'Alt+Backspace': 'deleteWordBackward:', 'Alt+Tab': 'insertTabIgnoringFieldEditor:', 'Alt+Enter': 'insertNewlineIgnoringFieldEditor:', + 'Alt+NumpadEnter': 'insertNewlineIgnoringFieldEditor:', 'Alt+Escape': 'complete:', 'Alt+ArrowUp': ['moveBackward:', 'moveToBeginningOfParagraph:'], 'Alt+ArrowDown': ['moveForward:', 'moveToEndOfParagraph:'], @@ -369,6 +374,7 @@ export const macEditingCommands: {[key: string]: string|string[]} = { 'Shift+Alt+Backspace': 'deleteWordBackward:', 'Shift+Alt+Tab': 'insertTabIgnoringFieldEditor:', 'Shift+Alt+Enter': 'insertNewlineIgnoringFieldEditor:', + 'Shift+Alt+NumpadEnter': 'insertNewlineIgnoringFieldEditor:', 'Shift+Alt+Escape': 'complete:', 'Shift+Alt+ArrowUp': 'moveParagraphBackwardAndModifySelection:', 'Shift+Alt+ArrowDown': 'moveParagraphForwardAndModifySelection:', diff --git a/test/keyboard.spec.js b/test/keyboard.spec.js index d4621f6155..d5098a24bc 100644 --- a/test/keyboard.spec.js +++ b/test/keyboard.spec.js @@ -221,7 +221,8 @@ module.exports.describe = function({testRunner, expect, FFOX, CHROMIUM, WEBKIT, const lastEvent = await page.evaluate('lastEvent'); expect(lastEvent.key).toBe(expectedKey, `${JSON.stringify(key)} had the wrong key: ${lastEvent.key}`); expect(lastEvent.code).toBe(expectedCode, `${JSON.stringify(key)} had the wrong code: ${lastEvent.code}`); - expect(await page.$eval('textarea', t => t.value)).toBe('\n', `${JSON.stringify(key)} failed to create a newline`); + const value = await page.$eval('textarea', t => t.value); + expect(value).toBe('\n', `${JSON.stringify(key)} failed to create a newline: ${JSON.stringify(value)}`); await page.$eval('textarea', t => t.value = ''); } });