mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-14 10:43:24 +00:00
Bug 1309515 part.2 TextInputHandler::InsertText() should consume current key event when it dispatches composition events r=m_kato
The cause of bug 1309515 is, HandleKeyDownEvent() dispatches eKeyPress events even after InsertText() dispatches composition events via InsertTextAsCommittingComposition(). Therefore, this patch consumes the current key event after dispatching composition events. Note that for consistency with Windows, InsertText() should use eKeyPress events rather than composition events at least in this case. However, changing the behavior has some risk. So, we should fix this bug with the safest hack for uplift. MozReview-Commit-ID: 7FYR5N2lATe --HG-- extra : rebase_source : 4485bd76a68567e8c20a84c2fbca78c626f592c5
This commit is contained in:
parent
d7f167f262
commit
6ca17cf78c
@ -2190,6 +2190,14 @@ TextInputHandler::InsertText(NSAttributedString* aAttrString,
|
||||
|
||||
if (str.Length() != 1 || IsIMEComposing()) {
|
||||
InsertTextAsCommittingComposition(aAttrString, aReplacementRange);
|
||||
// For now, consume keypress events when we dispatch the string with a
|
||||
// composition for preventing to dispatch keypress events later.
|
||||
// TODO: When there is a currentKeyEvent, we should dispatch keypress
|
||||
// events even if the length of the string is over 1.
|
||||
if (currentKeyEvent) {
|
||||
currentKeyEvent->mKeyPressHandled = true;
|
||||
currentKeyEvent->mKeyPressDispatched = true;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user