Граф коммитов

2262 Коммитов

Автор SHA1 Сообщение Дата
Masayuki Nakano 99651541fb Bug 791300 KeyboardLayout should respect following WM_(SYS)DEADCHAR messages for supporting chained dead keys r=m_kato
Currently, KeyboardLayout doesn't support chained dead keys because probably, the initial developer didn't expect there are such keyboard layout.  Additionally, if we'd try to handle them with KeyboardLayout, it'd need to create too big and too complicated table at loading such keyboard layout.  It's really nightmare.  Therefore, this patch takes different approach.

Currently, when WM_(SYS)KEYDOWN is received, KeyboardLayout (and NativeKey) respects following WM_(SYS)CHAR.  Similarly, this patch makes KeyboardLayout respect WM_(SYS)DEADCHAR when it handles dead key.  If WM_(SYS)KEYDOWN is followed by WM_DEADCHAR, that means that the key press is in a dead key sequence and not finishing the existing dead key sequence.  Therefore, when WM_(SYS)KEYDOWN is followed by WM_(SYS)DEADCHAR, KeyboardLayout activates dead key sequence.

For supporting dead key chain, this patch makes KeyboardLayout::mActiveDeadKey and KeyboardLayout::mDeadKeyShiftState arrays.  When dead keydown message is received, KeyboardLayout appends an item to each of them.  (I.e., when the array is not empty, it's in a dead key sequence.)

When WM_(SYS)KEYUP is received, KeyboardLayout checks if it's in mActiveDeadKey.  If it's included in the array, it initializes NativeKey as a dead keyup event.

Otherwise, when non-printable key (probably) is received in a dead key sequence, KeyboardLayout doesn't handle it as a part of the dead key sequence.  For example, a modifier key may be pressed for next key.  (Even if the keyboard layout maps text input to a non-printable key, we can ignore them because such key's KeyboardEvent.key value should be decided only with the virtual keyboard.)

MozReview-Commit-ID: 9n8B0YYuKCO

--HG--
extra : rebase_source : d18ca896829274d35cc8b7744c5e1645a9e78784
2016-11-10 23:24:33 +09:00
David Anderson 3ffb31894f Don't access gfxPlatform from WinCompositorWidget. (bug 1316481, r=mattwoodrow) 2016-11-09 20:49:09 -08:00
Jonathan Watt 07c5338755 Bug 1313525 - Remove the nsIPrintOptions interface. r=mstange
--HG--
rename : widget/nsIPrintOptions.idl => widget/nsIPrinterEnumerator.idl
2016-10-28 00:31:14 +01:00
Kartikaya Gupta 54c54c7a09 Bug 1315706 - Pass a wrapper struct to various CompositorWidget functions. r=dvander
This is the first step in using these functions without having a
LayerManagerComposite at all.

MozReview-Commit-ID: 2zkuB7Ox4Ut

--HG--
extra : rebase_source : b23988275f5851a2fd30bd3e8a9931107a224c66
2016-11-07 21:16:52 -05:00
Kartikaya Gupta cb026d2536 Bug 1313170 - Use the widget-level touch injection instead of the OS-level touch injection for some tests. r=dvander
When using the InjectTouchInput API on Windows, the API requires that the caller
keep providing input frames (by calling the API function) at least every 100ms.
If the caller fails to do so, Windows can return an ERROR_TIMEOUT and throw
away the touch sequence. In some tests, it is hard for us to make this guarantee,
because we need to wait for other events between the touchdown and touchup. For
these tests, we can use the widget-level touch injection code that we have as
a fallback for the OS-level touch injection code. The widget-level touch
injection is less representative of real-world usage but allows us to bypass
the timeout problem.

MozReview-Commit-ID: EoVUSZmERUw

--HG--
extra : rebase_source : 4f7ca1a1e6da4479d51526e8f132f5cb23fceb49
2016-10-31 10:05:15 -04:00
Makoto Kato 57b13a9369 Bug 1312302 - Set dummy Selection during initializing TextStore. r=masayuki
When PC supports table mode, TextInputFramme.dll is loaded and it can be used for TIP.

When creating new TextStore object, selection might be nothing yet on e10s.  At this time, GetSelection will return E_FAIL since selection data isn't received yet.  If GetSelection returns error during SetFocus, TextInputFrame.dll will crash.

So we set temporary selection to avoid crash.


MozReview-Commit-ID: HyVSwvhXGJh

--HG--
extra : rebase_source : 9e4838ffc5c8d8cf0e67685c6c1da09ecba6c7a9
extra : amend_source : dda79c9380ee34c82a611fc6a6691cbe63aec63c
2016-10-25 17:53:38 +09:00
Dão Gottwald 998303abfe Bug 582951 - Use CSS outline for checkbox and radio button focus indicator. r=dbaron,jimm 2016-10-22 08:28:53 +02:00
Neil Deakin 68ac95182c Bug 1301673, use device pixels for the supplied drag position and the computed dragrectangle, r=tn 2016-10-19 15:01:39 -04:00
Neil Deakin 12c7b914da Bug 1301673, use more specific coordinates for screen position in drag calculations, r=tn 2016-10-19 15:01:39 -04:00
Eric Rahm 1eb4ae7e0d Bug 1309698 - Remove usage of nsISupportsArray from nsIDragService. r=smaug 2016-10-18 11:56:20 -07:00
Makoto Kato 7912a1dc20 Bug 1310453 - Check whether aUri isn't created. r=jimm
Since aUri is nullptr, Firefox will crash on shutdown.


MozReview-Commit-ID: E5ENWsjK7Px

--HG--
extra : rebase_source : d52a301ec0d313f303a98f1d463f9f1120ea44c8
2016-10-17 12:17:42 +09:00
Eric Rahm 52edf921c1 Bug 1310017 - Remove nsISupportsArray usage from nsITransferable and nsIFormatConverter. r=smaug
This converts |nsITransferable.flavorsTransferableCanExport| and
|nsITransferable.flavorsTransferableCanImport| to return a |nsIArray|.

|nsIFormatConverter.getInputDataFlavors| and
|nsIFormatConverter.getOutputDataFlavors| are updated as well.
2016-10-16 12:43:56 -07:00
Edwin Flores 5f13602836 Bug 1292311 - Blacklist nVidia drivers <= 187.45 for frequent shutdown crashes - r=jrmuizel 2016-10-13 10:54:16 +01:00
Masayuki Nakano 2fb6e9eb1c Bug 1303273 part.9 NativeKey::mFollowingCharMsgs should be AutoTArray r=m_kato
Similarly, NativeKey is a stack class and mFollowingCharMsgs which stores following char messages of WM_(SYS)KEYDOWN should be AutoTArray for preventing to use heap at handling inputs with usual keyboard layout.

5 is enough size for handling usual keyboard layout because we support only 5 or less characters per dead key sequence.

MozReview-Commit-ID: IphcIOmPW0C

--HG--
extra : rebase_source : 74ce6f9fef73df4b9bbccbbdd713470ff7357889
2016-10-07 14:38:14 +09:00
Masayuki Nakano af0bc7745d Bug 1303273 part.8 UniCharsAndModifiers should use nsAutoString and AutoTArray to store characters and modifiers r=m_kato
Fortunately, UniCharsAndModifiers instances are only in stack.  Therefore, we can make it a stack class and use nsAutoString and AutoTArray for not using heap at handling inputs from usual keyboard layouts.

MozReview-Commit-ID: 9ZPbdjGst64

--HG--
extra : rebase_source : 06a21c20575747591c6bf1a55dff7e6e38884333
2016-10-07 14:32:45 +09:00
Masayuki Nakano 2c0c609d8a Bug 1303273 part.7 Hide UniCharsAndModifiers::mLength and make its type size_t r=m_kato
MozReview-Commit-ID: 7QLdmgopOwG

--HG--
extra : rebase_source : 89d077c20edab65ac7c2c637b2cda94b6d1ab30d
2016-10-07 13:39:15 +09:00
Masayuki Nakano c20c0f333a Bug 1303273 part.6 Hide UniCharsAndModifiers::mModifiers r=m_kato
MozReview-Commit-ID: 9KKN5mlJadg

--HG--
extra : rebase_source : a3109eca884b3795f4a069bc5c694d1f495ef86b
2016-10-07 13:25:40 +09:00
Masayuki Nakano 0d6b0439b4 Bug 1303273 part.5 UniCharsAndModifiers should hide mChars r=m_kato
Now, we have an security issue.  mCommittedCharsAndModifiers may be initialized with multiple WM_(SYS)CHAR messages.  However, if it's generated by odd (or malicious) middleware, mCommittedCharsAndModifiers may be overflown because it has only fixed array.  For fixing this issue, first, we should hide the members for making the users not depend on the design of UniCharsAndModifiers.

This patch changes UniCharsAndModifiers to a class and hiding mChars and adding |CharAt() const|.

MozReview-Commit-ID: 5EjrIhmCdE4

--HG--
extra : rebase_source : a3dc68998f5f177582addd8587c4da86b2d17b3b
2016-10-07 12:04:49 +09:00
Masayuki Nakano 8c926d5f82 Bug 1303273 part.3 Dispatch eKeyPress events without NativeKey::HandleCharMessage() when it handles WM_(SYS)KEYDOWN message and there are following WM_(SYS)CHAR messages which includes non-control character r=m_kato
This patch creates NativeKey::DispatchKeyPressEventsWithRetrievedCharMessages() for dispatching eKeyPress event with mCommittedCharsAndModifiers when it stores following printable WM_(SYS)CHAR messages.

Using loop for dispatching eKeyPress event for every WM_(SYS)CHAR message is wrong because WidgetKeyboardEvent::mKeyValue is initialized with mCommittedCharsAndModifiers and it causes TextEventDispatcher dispatching multiple eKeyPress events at every call of MaybeDispatchKeypressEvents().  Therefore, if mKeyValue is "^^", eKeyPress event is dispatched 4 times --for the first message, eKeyPress events are fired for each "^" and for the second message, eKeyPress events are fired again for each "^"--.  Therefore, when it handles WM_(SYS)KEYDOWN and it causes inputting one or more printable characters, it's the easiest way not to use HandleCharMessage().

The new method calls TextEventDispatcher::MaybeDispatchKeypressEvents() only once and it requests to call the callback method with new argument of MaybeDispatchKeypressEvents() when it needs to dispatch 2 or more eKeyPress events.  Then, NativeKey::WillDispatchKeyboardEvent() can set each eKeyPress event to raw information of the message and proper modifier state.

With this change, we can dispatch multiple eKeyPress events with retrieved WM_(SYS)CHAR message information rather than retrieved information from active keyboard layout.  Therefore, NeedsToHandleWithoutFollowingCharMessages() doesn't return true even when mCommittedCharsAndModifiers stores two or more characters.

FYI: there is a bug in test_keycodes.xul. That is, Alt+'A' of Greek keyboard layout should cause WM_SYSCHAR with a corresponding Greek character but ASCII characters are specified.  Therefore, this patch includes the fix of these bugs

MozReview-Commit-ID: JVm7ZJVug0O

--HG--
extra : rebase_source : 414ecbe2c01c53f294d1346414b1a289aa0abfe8
2016-10-06 20:52:03 +09:00
Masayuki Nakano 642d448ca7 Bug 1303273 part.2 KeyboardLayout::InitNativeKey() should initialize aNativeKey.mCommittedCharsAndModifiers with following WM_CHAR or WM_SYSCHAR messages which are not providing a control character r=m_kato
First, mCommittedCharsAndModifiers should be initialized with following char messages because the messages could be different from the information of current keyboard layout.

So, this patch guarantees that mCommittedCharsAndModifiers are same as the user expected when there is one or more WM_CHAR or WM_SYSCHAR messages.

MozReview-Commit-ID: I5Ack0xccoL

--HG--
extra : rebase_source : e4c7af75fd200f30ec52b53dc05f49ae8887c6f0
2016-10-07 11:36:34 +09:00
Masayuki Nakano add7eea556 Bug 1303273 part.1 KeyboardLayout::IsSysKey() should check MODIFIER_ALT as a bit flag r=m_kato
This is a simple mistake and blocks following patchs' automated tests.

For example, when Alt+Shift+foo doesn't cause text, this returns false even though it should return true.

MozReview-Commit-ID: 91L33vZhouT

--HG--
extra : rebase_source : be7d4e7ad670c1b03e6497c1c313c187ece80c1c
2016-10-11 13:00:45 +09:00
Ryan VanderMeulen 38574eeac5 Merge m-c to inbound. a=merge 2016-10-07 09:44:29 -04:00
Nicolas Silva 9f87d72b3f Bug 1299860 - Don't use the compositor backend of a popup with ImageBridge and VRManager. r=Bas 2016-10-07 11:08:32 +02:00
Masayuki Nakano 0f3c94dc03 Bug 1307112 part.10 Clean up NativeKey::HandleCharMessage() r=m_kato
Now, NativeKey::HandleCharMessage() has almost same code, one is for dispatching eKeyPress event for non-printable keys or printable keys when one of Alt or Ctrl key is pressed, the other is for printable keys when Alt or Ctrl key is pressed.

The difference of them is, the former block removes Alt state and Ctrl state for handling AltGr key.  When AltGr key is pressed, both Alt and Ctrl state are true.  However, EditorBase treas keypress events whose altKey or ctrlKey is true as non-printable key event.  Therefore, we need to set these modifier state to false when AltGr key is pressed and the key causes some text.

Note that as far as we know, when a key press with AltGr doesn't cause any characters, WM_CHAR isn't generated.  Therefore, we don't need to check with complicated logic if the key event is actually inputting a character.

MozReview-Commit-ID: BRNWfICvkSm

--HG--
extra : rebase_source : 3b8a2aaeb4c53be1567f7a8d17dfef1af90406dd
2016-10-04 23:01:14 +09:00
Masayuki Nakano 69a96b6460 Bug 1307112 part.9 Get rid of remaining hacks for KeyboardEvent.charCode when Ctrl or Alt is pressed r=m_kato
Current shortcut key handling is really difference from what we did before struggling with "key hell".  Therefore, remaining hacks for charCode in NativeKey::HandleCharMessage() are not necessary because they are for old code.

MozReview-Commit-ID: 3hvsBOiJ6VV

--HG--
extra : rebase_source : 7387fc89930f9b15d5d01612eb4a7a5726924bcd
2016-10-04 22:21:49 +09:00
Masayuki Nakano 337db43f23 Bug 1307112 part.8 NativeKey::HandleCharMessage() shouldn't dispatch eKeyPress event when its message is inputting a control character r=m_kato
This patch makes NativeKey::HandleCharMessage() stop dispatching eKeyPress event when the message is inputting a control character.  NativeKey::HandleCharMessage() runs following cases:

1. WM_KEYDOWN followed by a WM_CHAR message whose wParam is not a control character causes inputting printable characters.
2. WM_CHAR message is received without WM_KEYDOWN message.

So, when HandleCharMessage() is called for a control character, it's unusual case.  E.g., another application sends only WM_CHAR message with a control character.

On the other hand, Gecko is the only browser which dispatches "keypress" event even if pressed printable key doesn't cause inputting any characters.  And such "keypress" event is used for shortcut key handling and some default action handling.  So, even if we stop dispatching eKeyPress event from HandleCharMessage(), it shouldn't affect most users.

Note that this patch does NOT change the behavior when the user inputs a control character with usual keyboard layout such as Ctrl+A of en-US keyboard layout because DispatchKeyPressEventsWithoutCharMessage() dispatches eKeyPress event in such cases.

This patch also adds a lot of tests with Ctrl or Alt state for detecting regressions.

MozReview-Commit-ID: KUNqTp7RDSc

--HG--
extra : rebase_source : f91e37b0b82a8e8a95444a08f6d3101f14fadc50
2016-10-05 15:18:00 +09:00
Masayuki Nakano 1c049b2afa Bug 1307112 part.7 Get rid of Enter and Backspace key hack in NativeKey class r=m_kato
Currently, Enter and Backspace keys are handled without following WM_(SYS)CHAR message.  However, older code needs hack for them for avoiding conflict with Ctrl+J vs. Ctrl+Enter, etc.

So, we can get rid of them now.  And when a keydown causes inputting a control character, NativeKey should handle it with keyboard layout (i.e., without following char message(s)).

MozReview-Commit-ID: 6bVuK0BzFbx

--HG--
extra : rebase_source : 08ff45c1990ef8f3ed7703c69b2dc22e5f1dd6f5
2016-10-04 00:21:40 +09:00
Masayuki Nakano 151e2402f9 Bug 1307112 part.6 Get rid of char message argument from public NativeKey::HandleCharMessage() method r=m_kato
Currently, NativeKey::HandleCharMessage() is only a public method and it takes any char message.  However, when it's called outside of NativeKey, it should work only with NativeKey::mMsg.

Therefore, we should make current HandleCharMessage() a private method and create new overload method which doesn't take MSG as an argument.

MozReview-Commit-ID: LowV2FUmR3U

--HG--
extra : rebase_source : 271c61515752cf1ea56cf12c4f7ef6f1a90c9cac
2016-10-03 23:55:14 +09:00
Masayuki Nakano 2b007a1732 Bug 1307112 part.5 NativeKey should skip non-printable char messages when it initializes mCommittedCharsAndModifiers with following char messages r=m_kato
NativeKey shouldn't include characters which are provided by WM_SYSCHAR message or WM_DEADCHAR message into mCommittedCharsAndModifiers.

MozReview-Commit-ID: Ax1BmO5wTy0

--HG--
extra : rebase_source : 5d7d1735a783213f7c6a47cca0cadb1d4c5104c0
2016-10-03 18:20:29 +09:00
Masayuki Nakano b445cf93ba Bug 1307112 part.4 Rename NativeKey::IsFollowedByNonControlCharMessage() to IsFollowedByPrintableCharMessage() r=m_kato
For consistency with IsPrintableCharMessage(), IsFollowedByNonControlCharMessage() should be renamed to IsFollowedByPrintableCharMessage().

MozReview-Commit-ID: CBJFPO4FZej

--HG--
extra : rebase_source : f5d677743be35a3bb5fca35e7658e907aa46dbcb
2016-10-03 18:07:33 +09:00
Masayuki Nakano 432f317b32 Bug 1307112 part.3 NativeKey::IsFollowedByNonControlCharMessage() should return true when one of following char messages is a printable char message r=m_kato
Currently, NativeKey::IsFollowedByNonControlCharMessage() returns true only when the first char message is a printable char message.  Although, I don't know actual cases coming printable WM_CHAR message after non-printable char message, i.e.,

1. WM_SYSCHAR or WM_DEADCHAR
2. WM_CHAR for a printable character

or

1. WM_CHAR with a non-printable character (a control character)
2. WM_CHAR with a printable character

, we should make it return true because when one or more characters are being inputted, we should ignore non-printable char messages and handle printable char messages in the path handling text input.

MozReview-Commit-ID: 1v7v5mCRFCP

--HG--
extra : rebase_source : f82f7b77376450168bad34be031164ecf7338621
2016-10-03 18:03:46 +09:00
Masayuki Nakano b8a5c9fef9 Bug 1307112 part.2 Create NativeKey::IsPrintableCharMessage() which returns true when given message is WM_CHAR and inputting a printable character r=m_kato
MozReview-Commit-ID: 7f74273Ogo5

--HG--
extra : rebase_source : 860b01320a7f02f9bebea570be43c5c508fd4f41
2016-10-03 17:52:41 +09:00
Masayuki Nakano 4bbcc90d42 Bug 1307112 part.1 Rename NativeKey::IsPrintableCharMessage() to IsCharOrSysCharMessage() r=m_kato
Currently, NativeKey::IsPrintableCharMessage() returns true if given message is WM_CHAR or WM_SYSCHAR.  However, WM_SYSCHAR never causes inputting any character and even if WM_CHAR has a control character (i.e., non-printable character), it returns true.

MozReview-Commit-ID: IoU5F06WImz

--HG--
extra : rebase_source : c48f424f3d2960e6e9ceaa6d2fb09952ca634c3f
2016-10-03 17:45:03 +09:00
David Major fcbab1c99e Bug 1307812: Re-work IsEmptyMSG() to avoid taking the address of a temporary. r=masayuki
--HG--
extra : rebase_source : 2d5c3223f56165b3059c9c75cd8ecdeef0e7ce34
2016-10-06 09:22:18 -05:00
Carsten "Tomcat" Book 2a026d93ba Backed out changeset 9fbc16390ef7 (bug 1299860) for bustage on a CLOSED TREE 2016-10-06 17:04:40 +02:00
Nicolas Silva f10342b425 Bug 1299860 - Don't use the compositor backend of a popup with ImageBridge and VRManager. r=Bas 2016-10-06 16:39:56 +02:00
Carsten "Tomcat" Book 6df735c3b7 Merge mozilla-central to autoland 2016-10-04 12:03:18 +02:00
Masayuki Nakano 6f3a61eba6 Bug 1305943 Don't consume following WM_SYSCHAR message for some key combinations which are reserved by the system r=m_kato
When key combination is reserved by the system, web apps shouldn't be able to consume the key events.  In such case, we've decided that we never expose the key events in web contents (including chrome contents).  Therefore, NativeKey stops dispatching keyboard events only for Alt+Space.

However, new code of the fix of bug 1300003 always consumes WM_SYSCHAR which follows WM_SYSKEYDOWN of Alt+Space.  This is the cause of bug 1305943.

For fixing this bug, NativeKey should have a helper method, IsReservedBySystem(), and when it returns true, it should do nothing when Handle*Message() is called and should not consume following WM_SYSCHAR messages at handling WM_*KEYDOWN.

Unfortunately, it's impossible to test this regression because nsDOMWindowUtils::SendNativeKeyEvent() may call nsIWidget::SynthesizeNativeKeyEvent() asynchronously.  See <https://dxr.mozilla.org/mozilla-central/source/dom/base/nsDOMWindowUtils.cpp#1105-1108>.  Therefore, it cannot return if it's consumed.

MozReview-Commit-ID: 9ABh2rYNkFs

--HG--
extra : rebase_source : 7416e45babccce3af795dc523f46dc00fdddc6c7
2016-09-30 17:32:34 +09:00
Masayuki Nakano e2d42463da Bug 1306549 part.10 Reorder member declaration of KeyboardLayout class r=m_kato
We usually declare class members with following order:

1. public members
2. private members
3. friends

However, current KeyboardLayout is declared with completely opposite order.  Let's use usual order for preventing mistakes.

MozReview-Commit-ID: LwOcEUbJzes

--HG--
extra : rebase_source : 828b5d14f1b38f46e4ae5244d15de68c4db6785c
2016-10-04 16:37:07 +09:00
Masayuki Nakano d2ec7a36c3 Bug 1306549 part.9 Create KeyboardLayout::IsInDeadKeySequence() which returns true while it's in a dead key sequence r=m_kato
Currently, checking if it's in dead key sequence directly refers mActiveDeadKey.  However, this isn't clear for most developers.  So, let's create a helper method, IsInDeadKeySequence(), and wrap the nonintuitive check.

MozReview-Commit-ID: 7qTer9R8Gfs

--HG--
extra : rebase_source : 6ecb20cc3f5e28cfcf41fb33df8603785288bdda
2016-09-30 15:55:51 +09:00
Masayuki Nakano 6a00ae82ee Bug 1306549 part.8 Get rid of |virtualKey| and |isKeyDown| from KeyboardLayout::InitNativeKey() and KeyboardLayout::MaybeInitNativeKeyAsDeadKey() r=m_kato
For preventing wrapping long lines, old KeyboardLayout::InitNativeKey() uses two variables |virtualKey| and |isKeyDown| which are never modified.  However, they may be not clear for some developers where they came from.  Additionally, preceding patches reduced a lot of users of them and indent level.  Therefore, even if we remove these variables, we don't need additional line breaks in most cases.  So, removing them is better for easier to understand.

MozReview-Commit-ID: 680bYVINPAE

--HG--
extra : rebase_source : 15f4398072ccfe659fc6d2ae95a3f13261efa5af
2016-09-30 15:40:40 +09:00
Masayuki Nakano 05ede9d10b Bug 1306549 part.7 Create KeyboardLayout::MaybeInitNativeKeyAsDeadKey() r=m_kato
This patch creates KeyboardLayout::MaybeInitNativeKeyAsDeadKey() for wrapping dead key handling code in KeyboardLayout::InitNativeKey().

This makes InitNativeKey() code simpler.  Now, any developers must be able to understand what InitNativeKey() does easier than before fixing this bug.

MozReview-Commit-ID: C59ESUXeTxU

--HG--
extra : rebase_source : c840a0544470ec4081e80c11e050d4dfedef4cad
2016-09-30 16:06:00 +09:00
Masayuki Nakano 022c2c76a7 Bug 1306549 part.6 Create KeyboardLayout::ActivateDeadKeyState() r=m_kato
There is DeactivateDeadKeyState() but not ActivateDeadKeyState().  There should be both of them and hides the dead key state management into them.

MozReview-Commit-ID: JvAPE5f2HVy

--HG--
extra : rebase_source : d7027a1a6b75c6859e79d651d3e9b0136cc09891
2016-09-16 19:09:12 +09:00
Masayuki Nakano c5efc36210 Bug 1306549 part.5 Create KeyboardLayout::GetCompositeChar() for wrapping VirtualKey::GetCompositeChar() r=m_kato
VirtualKey::GetCompositeChar() needs index of virtual keycode which may make around the caller messy.  So, KeyboardLayout::GetCompositeChar() should wrap it and KeyboardLayout::MaybeInitNativeKeyWithCompositeChar() should use it.

MozReview-Commit-ID: 8KLTJpCFZ8u

--HG--
extra : rebase_source : fd13c009330fd485c8cba30f469fc645b560c623
2016-09-16 18:54:48 +09:00
Masayuki Nakano da22fd3b2b Bug 1306549 part.4 Create KeyboardLayout::GetNativeUniCharsAndModifiers() for wrapping VirtualKey::GetNativeUniChars() r=m_kato
Similar to VirtualKey::GetUniChars(), VirtualKey::GetNativeUniChars() needs key index.  So, it should be wrapped by a new helper method, KeyboardLayout::GetNativeUniCharsAndModifiers(), and KeyboardEvent::InitNativeKey() should use this instead of accessing its member's GetNativeUniChars().

MozReview-Commit-ID: 7M9OlNF698Y

--HG--
extra : rebase_source : e19a5c99014a8f0a0ed7cc3a86fe0c4ee10cebb5
2016-09-16 18:38:53 +09:00
Masayuki Nakano 49ebeb51f0 Bug 1306549 part.3 KeyboardLayout::InitNativeKey() should use GetUniCharsAndModifiers() instead of using VirtualKey::GetUniChars() directly r=m_kato
When InitNativeKey() retrieves UniCharsAndModifiers for a key, it needs key index for the given virtual keycode.  Therefore, wrapping the code with GetUniCharsAndModifiers() makes InitNativeKey() code simpler since each call specifies the virtual keycode to the method instead of key index.

MozReview-Commit-ID: Azy8chXexaz

--HG--
extra : rebase_source : 98da43e7f542037f952206cd3db731f6cbb097e7
2016-09-16 18:22:12 +09:00
Masayuki Nakano 1559d32969 Bug 1306549 part.2 Create overload methods which take ModifierKeyState instead of VirtualKey::ShiftState r=m_kato
This patch gets rid of |shiftState| from KeyboardLayout::InitNativeKey() and make each caller clearer.  This must make other developers understand what modifier state is used at each call.

MozReview-Commit-ID: 6zydP1jkffv

--HG--
extra : rebase_source : ea1d5f49ea02812aa632bdbad871688879f2b401
2016-09-30 15:32:10 +09:00
Masayuki Nakano af0de6d7e8 Bug 1306549 part.1 KeyboardLayout::InitNativeKey() should use KeyboardLayout::IsDeadKey() r=m_kato
KeyboardLayout::InitNativeKey() is very messy because it handles a lot of cases without helper methods.

It's important to make it simpler implementation for preventing regressions caused by some patches which are written with misunderstanding.  So, let's rewrite the method with helper method.

First, this patch make InitNativeKey() use IsDeadKey() instead of referring the table because calling IsDeadKey() is easier to understand.

MozReview-Commit-ID: DtN9qoh7Gz7

--HG--
extra : rebase_source : 8e769c1c88bfe646940491c111de609dbf53eeec
2016-09-16 17:24:39 +09:00
Stone Shih 2df4b9dc8d Bug 1299195 - [Pointer Events] Filter double click event (input source=touch) to prevent dispatching extra mousedown and pointerdown events to content. r=kats
--HG--
rename : gfx/layers/apz/test/mochitest/test_bug1285070.html => gfx/layers/apz/test/mochitest/test_group_pointerevents.html
extra : rebase_source : cc47f2ead72bf332faac2b5a76b45036e5085937
2016-09-20 10:48:11 +08:00
David Anderson 56cd5719ee Fix vsync sometimes not firing after the GPU process crashes. (bug 1305628, r=mattwoodrow) 2016-09-30 01:23:52 -07:00