diff --git a/dom/base/test/useractivation/mochitest.ini b/dom/base/test/useractivation/mochitest.ini index 9d2ec7daade5..fc1630e7174d 100644 --- a/dom/base/test/useractivation/mochitest.ini +++ b/dom/base/test/useractivation/mochitest.ini @@ -9,6 +9,7 @@ prefs = apz.zoom-to-focused-input.enabled=false [test_useractivation_has_been_activated.html] +[test_useractivation_key_events.html] [test_useractivation_transient.html] [test_useractivation_transient_consuming.html] [test_clipboard_editor.html] diff --git a/dom/base/test/useractivation/test_useractivation_key_events.html b/dom/base/test/useractivation/test_useractivation_key_events.html new file mode 100644 index 000000000000..d97906c22bcf --- /dev/null +++ b/dom/base/test/useractivation/test_useractivation_key_events.html @@ -0,0 +1,91 @@ + + + + User activation test: key events + + + + + + + diff --git a/widget/TextEvents.h b/widget/TextEvents.h index b4c4b9e95c39..4882bc2babd4 100644 --- a/widget/TextEvents.h +++ b/widget/TextEvents.h @@ -317,7 +317,16 @@ class WidgetKeyboardEvent : public WidgetInputEvent { const bool isEnterOrSpaceKey = mKeyNameIndex == KEY_NAME_INDEX_Enter || mKeyCode == NS_VK_SPACE; return (PseudoCharCode() || isEnterOrSpaceKey) && - !isCombiningWithOperationKeys; + (!isCombiningWithOperationKeys || + // ctrl-c/ctrl-x/ctrl-v is quite common shortcut for clipboard + // operation. + // XXXedgar, we have to find a better way to handle browser keyboard + // shortcut for user activation, instead of just ignoring all + // combinations, see bug 1641171. + ((mKeyCode == dom::KeyboardEvent_Binding::DOM_VK_C || + mKeyCode == dom::KeyboardEvent_Binding::DOM_VK_V || + mKeyCode == dom::KeyboardEvent_Binding::DOM_VK_X) && + IsAccel())); } /**