Commit Graph

128 Commits

Author SHA1 Message Date
Masayuki Nakano
9f11573ccf Bug 1294536 KeyboardLayout::InitNativeKey() shouldn't initialize NativeKey with WM_CHAR whose wParam isn't a printable character r=m_kato
KeyboardEvent::InitNativeKey() should initialize NativeKey if it's created for handling an orphan WM_CHAR message, however, if it the charCode isn't a printable character such as 0x0D for Enter key, it shouldn't refer it because focused editor shouldn't handle keyboard event as inputting the non-printable character.

MozReview-Commit-ID: FwTdGqhPEld
2016-08-22 14:23:59 +09:00
Masayuki Nakano
9dfda5b332 Bug 1261880 NativeKey should decide printable KeyboardEvent.key value of keydown and keypress events with following WM_CHAR message of WM_KEYDOWN r=m_kato
Some special keyboard layout may use a key as a non-lockable modifier key even if the key isn't a non-lockable modifier key (e.g., CapsLock key of 'Neo' for German). In such case, KeyboardLayout class cannot initialize NativeKey::mCommittedCharsAndModifiers with actual input character properly because KeyboardLayout class doesn't support such eccentric keyboard layouts.

For preventing this issue, NativeKey should overwrite mCommittedCharsAndModifiers with following WM_CHAR message when it handles WM_KEYDOWN and should handle with following WM_CHAR message.  However, we should ignore following WM_CHAR message if the character is a control character which shouldn't be inputted into focused text editor.

MozReview-Commit-ID: Ax01nnaRXek
2016-05-11 16:47:38 +09:00
Masayuki Nakano
f422aacec6 Bug 1263389 NativeKey should initialize WidgetKeyboardEvent::mKeyValue of WM_KEYDOWN of VK_PACKET with following char message r=m_kato
TextEventDispatcher initializes charCode value with mKeyValue (and mKeyNameIndex) of WidgetKeyboardEvent.  Therefore, NativeKey needs to initialize mKeyValue properly at handling WM_KEYDOWN message of VK_PACKET.  However, nobody initializes mCommittedCharsAndModifiers value of VK_PACKET.  Additionally, KeyboardLayout::ConvertNativeKeyCodeToKeyNameIndex() returns KEY_NAME_INDEX_Unidentified for it too.

Therefore, this patch creates a path for handling VK_PACKET.  First, makes KeyboardLayout::ConvertNativeKeyCodeToKeyNameIndex() returns KEY_NAME_INDEX_USE_STRING.  Next, the constructor of NativeKey initializes mCommittedCharsAndModifiers with following char message.  Additionally, makes sure that VK_PACKET is always handled with following char message even if there is no char message.
2016-04-25 16:42:59 +09:00
Masayuki Nakano
78f556b5ba Bug 1257759 part.9 Implement nsWindow::OnKeyEventInPluginProcess() on Windows r=jimm
Implementing nsWindow::OnWindowedPluginKeyEvent() on Windows.  This patch makes NativeKey class dispatches eKeyDownOnPlugin and eKeyUpOnPlugin when the method is called.

MozReview-Commit-ID: L8yRZvDaQKR
2016-04-15 17:02:36 +09:00
Masayuki Nakano
4d7c159e39 Bug 1257759 part.3 ModifierKeyState should be available in plugin module r=jimm
Before posting native key message from PluginInstanceChild, we need to check if the key combination could be a shortcut key, i.e., we need to check if Ctrl or Alt key is pressed.  ModifierKeyState is a good class for checking it but it should be defined in an independent header file.

This patch separates the definition of ModifierKeyState to mozilla/widget/WinModifierKeyState.h and implement MaybeMatchShortcutKey() for PluginInstanceChild.

MozReview-Commit-ID: ZjLnJx02Ou
2016-04-09 15:45:06 +09:00
Jonathan Watt
80a104b4e7 Bug 1265953, part 2 - Convert much of the rest of the widget code from nsAutoPtr to UniquePtr. r=mstange 2016-04-19 21:51:25 +01:00
Masayuki Nakano
54dda9ff81 Bug 1137561 part.8 Implement WinTextEventDispatcherListener::WillDispatchKeyboardEvent() r=m_kato 2016-03-16 13:47:49 +09:00
Masayuki Nakano
753635696b Bug 1137561 part.7 Rename whole members added by the previous patch r=m_kato 2016-03-16 13:47:49 +09:00
Masayuki Nakano
af84d5b72e Bug 1137561 part.6 Store some strings which may be inputted by the key with some modifier state before dispatching keydown event r=m_kato 2016-03-16 13:47:49 +09:00
Masayuki Nakano
1bf04ebe04 Bug 1137561 part.4 Make NativeKey use TextEventDispatcher r=m_kato 2016-03-16 13:47:49 +09:00
Nathan Froyd
4e6d8f6705 Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat
The bulk of this commit was generated with a script, executed at the top
level of a typical source code checkout.  The only non-machine-generated
part was modifying MFBT's moz.build to reflect the new naming.

CLOSED TREE makes big refactorings like this a piece of cake.

 # The main substitution.
find . -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    xargs perl -p -i -e '
 s/nsRefPtr\.h/RefPtr\.h/g; # handle includes
 s/nsRefPtr ?</RefPtr</g;   # handle declarations and variables
'

 # Handle a special friend declaration in gfx/layers/AtomicRefCountedWithFinalize.h.
perl -p -i -e 's/::nsRefPtr;/::RefPtr;/' gfx/layers/AtomicRefCountedWithFinalize.h

 # Handle nsRefPtr.h itself, a couple places that define constructors
 # from nsRefPtr, and code generators specially.  We do this here, rather
 # than indiscriminantly s/nsRefPtr/RefPtr/, because that would rename
 # things like nsRefPtrHashtable.
perl -p -i -e 's/nsRefPtr/RefPtr/g' \
     mfbt/nsRefPtr.h \
     xpcom/glue/nsCOMPtr.h \
     xpcom/base/OwningNonNull.h \
     ipc/ipdl/ipdl/lower.py \
     ipc/ipdl/ipdl/builtin.py \
     dom/bindings/Codegen.py \
     python/lldbutils/lldbutils/utils.py

 # In our indiscriminate substitution above, we renamed
 # nsRefPtrGetterAddRefs, the class behind getter_AddRefs.  Fix that up.
find . -name '*.cpp' -o -name '*.h' -o -name '*.idl' | \
    xargs perl -p -i -e 's/nsRefPtrGetterAddRefs/RefPtrGetterAddRefs/g'

if [ -d .git ]; then
    git mv mfbt/nsRefPtr.h mfbt/RefPtr.h
else
    hg mv mfbt/nsRefPtr.h mfbt/RefPtr.h
fi
2015-10-18 01:24:48 -04:00
Masayuki Nakano
3533e4ee27 Bug 895274 part.11 Rename NS_KEY_DOWN to eKeyDown r=smaug 2015-08-29 08:58:27 +09:00
Andrea Marchesini
b8630baa2d Bug 1156632 - Remove unused forward class declarations - patch 6 - the rest of the tree, r=ehsan 2015-04-22 08:29:24 +02:00
Jacek Caban
e391f20e7d Bug 1153829 - Don't use MOZ_ALWAYS_INLINE for non-inline functions. r=jimm 2015-04-14 18:06:58 +02:00
Ehsan Akhgari
ea41d8de48 Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj
This patch was automatically generated using the following script:

function convert() {
echo "Converting $1 to $2..."
find . \
       ! -wholename "*/.git*" \
       ! -wholename "obj-ff-dbg*" \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.c" \
         -o -iname "*.cc" \
         -o -iname "*.idl" \
         -o -iname "*.ipdl" \
         -o -iname "*.ipdlh" \
         -o -iname "*.mm" \) | \
    xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}

convert MOZ_OVERRIDE override
convert MOZ_FINAL final
2015-03-21 12:28:04 -04:00
Masayuki Nakano
770fb09fdd Bug 865561 Dispatch key events when WM_APPCOMMAND is fired for a keypress r=jimm+smaug 2014-12-30 10:47:56 +09:00
Masayuki Nakano
95c4a83667 Bug 1015028 Compute scan code value from virtual keycode if a keydown/keyup message doesn't have proper scancode value r=jimm 2014-06-01 11:32:08 +09:00
Masayuki Nakano
f709b17687 Bug 865649 part.2 Set KeyboardEvent.code value on Windows r=smaug+jimm 2014-05-25 11:08:59 +09:00
Masayuki Nakano
4050d05e94 Bug 981960 Retry to remove found char message with GetMessage() when PeekMessage() fails to remove the message from the queue r=jimm 2014-03-12 20:04:17 +09:00
Masayuki Nakano
98c30546c9 Bug 962140 When PeekMessage() fails to remove found char message, just ignore it (not to dispatch keyprese event) r=jimm 2014-03-04 10:34:27 +09:00
Masayuki Nakano
08a01a9c16 Bug 962140 Remove following char message of keydown message with found message r=jimm 2014-02-11 14:29:17 +09:00
Masayuki Nakano
dfbf8cb0cb Bug 962140 Use PeekMessage() instead of GetMessage() in KeyboardLayout.cpp r=jimm 2014-02-01 01:31:01 +09:00
Ehsan Akhgari
68bfe70f09 Bug 927728 - Part 1: Replace PRUnichar with char16_t; r=roc
This patch was automatically generated by the following script:

#!/bin/bash
# Command to convert PRUnichar to char16_t

function convert() {
echo "Converting $1 to $2..."
find . ! -wholename "*nsprpub*" \
       ! -wholename "*security/nss*" \
       ! -wholename "*modules/libmar*" \
       ! -wholename "*/.hg*" \
       ! -wholename "obj-ff-dbg*" \
       ! -name prtypes.h \
       ! -name Char16.h \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.c" \
         -o -iname "*.cc" \
         -o -iname "*.idl" \
         -o -iname "*.ipdl" \
         -o -iname "*.ipdlh" \
         -o -iname "*.mm" \) | \
    xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}

convert PRUnichar char16_t
2014-01-04 10:02:17 -05:00
Jacek Caban
20aa364672 Bug 944894 - Fix char16_t/wchar_t mismatch in widget/windows/. r=jimm 2013-12-03 16:12:57 +01:00
Masayuki Nakano
09b46679bd Bug 600117 part.2 Implement KeyboardEvent.repeat on Windows r=jimm 2013-11-07 20:17:32 +09:00
Masayuki Nakano
a0705d74fd Bug 602787 part.9 Don't implement methods which need BasicEvents.h or TextEvents.h in windows/KeyboardLayout.h r=jimm 2013-10-22 22:27:36 +09:00
Masayuki Nakano
545f36a759 Bug 602787 part.8 Don't implement nsWindowBase::DispatchPluginEvent() in windows/nsWindowBase.h r=jimm 2013-10-22 22:27:35 +09:00
Wes Kocher
3708337984 Backed out 9 changesets (bug 602787) on suspicion of breaking mochitest-metro on a CLOSED TREE
Backed out changeset 1730bcae2c45 (bug 602787)
Backed out changeset 70606b9b1e42 (bug 602787)
Backed out changeset 57ca2861ea30 (bug 602787)
Backed out changeset 3b9f1062d915 (bug 602787)
Backed out changeset 3ee56eacc84b (bug 602787)
Backed out changeset 1c35693be3d3 (bug 602787)
Backed out changeset ef095c3aef98 (bug 602787)
Backed out changeset 4827bdae97fd (bug 602787)
Backed out changeset fa0f355e7871 (bug 602787)
2013-10-22 13:11:53 -04:00
Masayuki Nakano
57d344ad79 Bug 602787 part.9 Don't implement methods which need BasicEvents.h or TextEvents.h in windows/KeyboardLayout.h r=jimm 2013-10-22 22:27:36 +09:00
Masayuki Nakano
261f217f82 Bug 602787 part.8 Don't implement nsWindowBase::DispatchPluginEvent() in windows/nsWindowBase.h r=jimm 2013-10-22 22:27:35 +09:00
Masayuki Nakano
65a801dd59 Bug 920377 part.26 Get rid of nsInputEvent r=roc 2013-10-01 16:23:02 +09:00
Masayuki Nakano
36c92a3fec Bug 920377 part.17 Get rid of nsKeyEvent r=roc 2013-10-01 16:22:58 +09:00
Masayuki Nakano
c97e23707c Bug 912956 part.2 Rename nsEvent.h to mozilla/EventForwards.h and sort out it r=roc 2013-09-24 19:04:14 +09:00
Masayuki Nakano
2556d226ea Bug 907657 Don't store following char message because it may be removed during dispatching keydown event r=jimm 2013-08-27 21:34:57 +09:00
Masayuki Nakano
4bb46fbdd0 Bug 892606 part.3 FakeCharMsg should be marked as consumed and only non-consumed char message should be synthesized r=jimm 2013-08-14 11:09:38 +09:00
Masayuki Nakano
cdcabf09b1 Bug 892606 part.2 Fix scancode value in lParam generated by KeyboardLayout::SynthesizeNativeKeyEvent() r=jimm 2013-08-14 11:09:38 +09:00
Masayuki Nakano
11514fdf0b Bug 501496 part.1 Don't dispatch keypress events if defaultPrevent() of the keydown event is called on Windows r=smaug+jimm 2013-07-25 15:09:28 +09:00
Masayuki Nakano
086c87a2a6 Bug 896362 part.1 Support VK_ABNT_C1 and VK_ABNT_C2 (keyCode and location) r=jimm+smaug 2013-07-25 15:04:17 +09:00
Masayuki Nakano
70bc2363f8 Bug 891292 r=jimm 2013-07-10 00:54:41 +09:00
Justin Lebar
de89040a2c Bug 802686 - s/MOZ_NOT_REACHED/MOZ_CRASH/ in Gecko. r=(see below)
r=tbsaunde for accessible
r=jmuizelaar for gfx
r=roc for layout
r=glandium for mozglue
r=jduell for netwerk
r=khuey for everything else

This is a mechanical change made with sed.  Later patches in this queue
clean up the whitespace errors and so on.
2013-06-28 18:38:30 -07:00
Jacek Caban
f019e14080 Bug 855975 - Include typo fix. 2013-05-30 11:52:14 +02:00
Masayuki Nakano
fe5260fa98 Bug 855975 part.22 Move sModifierKeyMap from nsWindowDefs.h to KeyboardLayout.h r=jimm 2013-05-29 15:34:49 +09:00
Masayuki Nakano
1c60bf448f Bug 855975 part.21 Rename nsFakeCharMessage with widget::NativeKey::FakeCharMsg r=jimm 2013-05-29 15:34:49 +09:00
Masayuki Nakano
9fa9982ea7 Bug 855975 part.20 Sort out the scope of the methods of widget::NativKey r=jimm 2013-05-29 15:34:49 +09:00
Masayuki Nakano
03f1e09b3a Bug 855975 part.19 Move nsWindow::SynthesizeNativeKeyEvent() to widget::KeyboardLayout::SynthesizeNativeKeyEvent() r=jimm 2013-05-29 15:34:49 +09:00
Masayuki Nakano
d58bbe2e14 Bug 855975 part.18 Merge widget::NativeKey::DispatchKeyDown() into widget::NativeKey::HandleKeyDown() r=jimm 2013-05-29 15:34:49 +09:00
Masayuki Nakano
ee5977a0d9 Bug 855975 part.17 Move nsWindow::OnKeyDown() to widget::NativeKey::HandleKeyDownMessage() r=jimm 2013-05-29 15:34:49 +09:00
Masayuki Nakano
25b47115c2 Bug 855975 part.16 Move keydown message redirect manager from nsWindow to widget::RedirectedKeyDownMessageManager r=jimm 2013-05-29 15:34:49 +09:00
Masayuki Nakano
5160a5d510 Bug 855975 part.15 Use widget::NativeKey::mCommittedCharsAndModifiers directly in the methods of widget::NativeKey r=jimm 2013-05-29 15:34:48 +09:00
Masayuki Nakano
7508a7e92d Bug 855975 part.14 Move following WM_*CHAR message handler from nsWindow::OnKeyDown() to widget::NativeKey::DispatchKeyPressEventForFollowingCharMessage() r=jimm 2013-05-29 15:34:48 +09:00