Title: [144193] trunk/Source/WebKit/blackberry
Revision
144193
Author
mifen...@rim.com
Date
2013-02-27 08:26:05 -0800 (Wed, 27 Feb 2013)

Log Message

[BlackBerry] Accept key events even when composing region is active.
https://bugs.webkit.org/show_bug.cgi?id=110617

Reviewed by Rob Buis.

PR 293598.

Fix a regression in the previous patch caused
by an unhandled Alt key down being sent through
by IMF.

Reviewed Internally by Nima Ghanavatian.

* WebKitSupport/InputHandler.cpp:
(BlackBerry::WebKit::InputHandler::updateFormState):
* WebKitSupport/InputHandler.h:
(InputHandler):

Modified Paths

Diff

Modified: trunk/Source/WebKit/blackberry/ChangeLog (144192 => 144193)


--- trunk/Source/WebKit/blackberry/ChangeLog	2013-02-27 16:21:56 UTC (rev 144192)
+++ trunk/Source/WebKit/blackberry/ChangeLog	2013-02-27 16:26:05 UTC (rev 144193)
@@ -1,3 +1,23 @@
+2013-02-27  Mike Fenton  <mifen...@rim.com>
+
+        [BlackBerry] Accept key events even when composing region is active.
+        https://bugs.webkit.org/show_bug.cgi?id=110617
+
+        Reviewed by Rob Buis.
+
+        PR 293598.
+
+        Fix a regression in the previous patch caused
+        by an unhandled Alt key down being sent through
+        by IMF.
+
+        Reviewed Internally by Nima Ghanavatian.
+
+        * WebKitSupport/InputHandler.cpp:
+        (BlackBerry::WebKit::InputHandler::updateFormState):
+        * WebKitSupport/InputHandler.h:
+        (InputHandler):
+
 2013-02-26  Yong Li  <y...@rim.com>
 
         [BlackBerry] Use APIEntryShim when making JS call

Modified: trunk/Source/WebKit/blackberry/WebKitSupport/InputHandler.cpp (144192 => 144193)


--- trunk/Source/WebKit/blackberry/WebKitSupport/InputHandler.cpp	2013-02-27 16:21:56 UTC (rev 144192)
+++ trunk/Source/WebKit/blackberry/WebKitSupport/InputHandler.cpp	2013-02-27 16:26:05 UTC (rev 144193)
@@ -1674,6 +1674,14 @@
     setCursorPosition(selectionStartPosition);
 }
 
+bool InputHandler::isNavigationKey(unsigned character) const
+{
+    return character == KEYCODE_UP
+        || character == KEYCODE_DOWN
+        || character == KEYCODE_LEFT
+        || character == KEYCODE_RIGHT;
+}
+
 bool InputHandler::handleKeyboardInput(const Platform::KeyboardEvent& keyboardEvent, bool changeIsPartOfComposition)
 {
     InputLog(Platform::LogLevelInfo,
@@ -1703,8 +1711,12 @@
     // If we aren't specifically part of a composition, fail, IMF should never send key input
     // while composing text. If IMF has failed, we should have already finished the
     // composition manually. There is a caveat for KeyUp which is explained above.
-    if (!changeIsPartOfComposition && compositionActive())
-        removeAttributedTextMarker();
+    if (!changeIsPartOfComposition && compositionActive()) {
+        if (type == Platform::KeyboardEvent::KeyDown && isNavigationKey(keyboardEvent.character()))
+            removeAttributedTextMarker();
+        else
+            return false;
+    }
 
     ProcessingChangeGuard guard(this);
 

Modified: trunk/Source/WebKit/blackberry/WebKitSupport/InputHandler.h (144192 => 144193)


--- trunk/Source/WebKit/blackberry/WebKitSupport/InputHandler.h	2013-02-27 16:21:56 UTC (rev 144192)
+++ trunk/Source/WebKit/blackberry/WebKitSupport/InputHandler.h	2013-02-27 16:26:05 UTC (rev 144193)
@@ -228,6 +228,8 @@
     void showTextInputTypeSuggestionBox(bool allowEmptyPrefix = false);
     void hideTextInputTypeSuggestionBox();
 
+    bool isNavigationKey(unsigned character) const;
+
     WebPagePrivate* m_webPage;
 
     RefPtr<WebCore::Element> m_currentFocusElement;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to