Modified: trunk/Tools/ChangeLog (134051 => 134052)
--- trunk/Tools/ChangeLog 2012-11-09 12:41:27 UTC (rev 134051)
+++ trunk/Tools/ChangeLog 2012-11-09 12:54:35 UTC (rev 134052)
@@ -1,3 +1,24 @@
+2012-11-09 Xiaobo Wang <[email protected]>
+
+ [BlackBerry] DRT - eventSender.keyDown() needs to support pageUp, pageDown, home, end key
+ https://bugs.webkit.org/show_bug.cgi?id=100937
+
+ Reviewed by Rob Buis.
+
+ 1. Translate these keys to their corresponding BlackBerry key code.
+ 2. Break down a KeyChar event to a KeyDown/KeyUp pair. This is required
+ because we only handle scrolling on a KeyDown event in WebPage::keyEvent()
+ , and internally a KeyChar event is interpreted as a KeyDown event + a
+ KeyUp event in InputHandler::handleKeyboardInput().
+
+ Tests fixed:
+ 1. editing/input/scroll-viewport-page-up-down.html
+ 2. editing/selection/move-begin-end.html
+ 3. fast/forms/select-popup-pagekeys.html
+
+ * DumpRenderTree/blackberry/EventSender.cpp:
+ (keyDownCallback):
+
2012-11-09 Simon Hausmann <[email protected]>
Unreviewed prospective Qt/Windows build bot fix:
Modified: trunk/Tools/DumpRenderTree/blackberry/EventSender.cpp (134051 => 134052)
--- trunk/Tools/DumpRenderTree/blackberry/EventSender.cpp 2012-11-09 12:41:27 UTC (rev 134051)
+++ trunk/Tools/DumpRenderTree/blackberry/EventSender.cpp 2012-11-09 12:54:35 UTC (rev 134052)
@@ -131,11 +131,14 @@
charCode = KEYCODE_UP;
else if (JSStringIsEqualToUTF8CString(character, "downArrow"))
charCode = KEYCODE_DOWN;
- else if (JSStringIsEqualToUTF8CString(character, "pageUp")
- || JSStringIsEqualToUTF8CString(character, "pageDown")
- || JSStringIsEqualToUTF8CString(character, "home")
- || JSStringIsEqualToUTF8CString(character, "end"))
- return JSValueMakeUndefined(context);
+ else if (JSStringIsEqualToUTF8CString(character, "pageUp"))
+ charCode = KEYCODE_PG_UP;
+ else if (JSStringIsEqualToUTF8CString(character, "pageDown"))
+ charCode = KEYCODE_PG_DOWN;
+ else if (JSStringIsEqualToUTF8CString(character, "home"))
+ charCode = KEYCODE_HOME;
+ else if (JSStringIsEqualToUTF8CString(character, "end"))
+ charCode = KEYCODE_END;
else if (JSStringIsEqualToUTF8CString(character, "delete"))
charCode = KEYCODE_BACKSPACE;
else {
@@ -178,7 +181,8 @@
if (needsCtrlKeyModifier)
modifiers |= KEYMOD_CTRL;
- page->keyEvent(BlackBerry::Platform::KeyboardEvent(charCode, BlackBerry::Platform::KeyboardEvent::KeyChar, modifiers));
+ page->keyEvent(BlackBerry::Platform::KeyboardEvent(charCode, BlackBerry::Platform::KeyboardEvent::KeyDown, modifiers));
+ page->keyEvent(BlackBerry::Platform::KeyboardEvent(charCode, BlackBerry::Platform::KeyboardEvent::KeyUp, modifiers));
return JSValueMakeUndefined(context);
}
@@ -394,8 +398,8 @@
if (!eventSenderClass) {
JSClassDefinition classDefinition = {
- 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
classDefinition.staticFunctions = staticFunctions;
classDefinition.staticValues = staticValues;