[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc
mrobinson at webkit.org
mrobinson at webkit.org
Wed Dec 22 11:38:43 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit bfc28f7a78539bcf1974220c3798443348aa9f28
Author: mrobinson at webkit.org <mrobinson at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Mon Aug 2 17:07:34 2010 +0000
2010-08-02 Martin Robinson <mrobinson at igalia.com>
Reviewed by Xan Lopez.
[Gtk] DOM listeners get wrong keycodes for some keys
https://bugs.webkit.org/show_bug.cgi?id=35170
Modify some existing tests to test the generate key code of
the keypad insert and delete keys as well as the print screen key.
* fast/events/keydown-numpad-keys-expected.txt: Update expectations.
* fast/events/script-tests/keydown-numpad-keys.js: Add test for keypad insert and delete.
* fast/events/special-key-events-in-input-text-expected.txt: Update expectations.
* fast/events/special-key-events-in-input-text.html: Add test for print screen.
2010-08-02 Martin Robinson <mrobinson at igalia.com>
Reviewed by Xan Lopez.
[Gtk] DOM listeners get wrong keycodes for some keys
https://bugs.webkit.org/show_bug.cgi?id=35170
Emit the proper DOM keyCode for the print screen, keypad insert,
and keypad delete keys.
* platform/gtk/KeyEventGtk.cpp:
(WebCore::windowsKeyCodeForKeyEvent): Fix mapping between GDK key codes
and Windows key codes.
2010-08-02 Martin Robinson <mrobinson at igalia.com>
Reviewed by Xan Lopez.
[Gtk] DOM listeners get wrong keycodes for some keys
https://bugs.webkit.org/show_bug.cgi?id=35170
Add support to all event senders for simulating keypad insert
and print screen keys.
* DumpRenderTree/chromium/EventSender.cpp:
(EventSender::keyDown): Add support for generating keypad insert and print screen.
* DumpRenderTree/gtk/EventSender.cpp:
(keyDownCallback): Ditto.
* DumpRenderTree/mac/EventSendingController.mm:
(-[EventSendingController keyDown:withModifiers:withLocation:]): Ditto.
* DumpRenderTree/qt/EventSenderQt.cpp:
(EventSender::keyDown): Ditto.
* DumpRenderTree/win/EventSender.cpp:
(keyDownCallback): Ditto.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@64470 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 4be50fd..80d085e 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,5 +1,20 @@
2010-08-02 Martin Robinson <mrobinson at igalia.com>
+ Reviewed by Xan Lopez.
+
+ [Gtk] DOM listeners get wrong keycodes for some keys
+ https://bugs.webkit.org/show_bug.cgi?id=35170
+
+ Modify some existing tests to test the generate key code of
+ the keypad insert and delete keys as well as the print screen key.
+
+ * fast/events/keydown-numpad-keys-expected.txt: Update expectations.
+ * fast/events/script-tests/keydown-numpad-keys.js: Add test for keypad insert and delete.
+ * fast/events/special-key-events-in-input-text-expected.txt: Update expectations.
+ * fast/events/special-key-events-in-input-text.html: Add test for print screen.
+
+2010-08-02 Martin Robinson <mrobinson at igalia.com>
+
[GTK] r64379 broke two tests
https://bugs.webkit.org/show_bug.cgi?id=43361
diff --git a/LayoutTests/fast/events/keydown-numpad-keys-expected.txt b/LayoutTests/fast/events/keydown-numpad-keys-expected.txt
index 27a47e3..1fca312 100644
--- a/LayoutTests/fast/events/keydown-numpad-keys-expected.txt
+++ b/LayoutTests/fast/events/keydown-numpad-keys-expected.txt
@@ -29,6 +29,12 @@ PASS lastKeyboardEvent.type is "keydown"
PASS lastKeyboardEvent.keyCode is 40
PASS lastKeyboardEvent.keyLocation is 0
PASS lastKeyboardEvent.type is "keydown"
+PASS lastKeyboardEvent.keyCode is 45
+PASS lastKeyboardEvent.keyLocation is 0
+PASS lastKeyboardEvent.type is "keydown"
+PASS lastKeyboardEvent.keyCode is 46
+PASS lastKeyboardEvent.keyLocation is 0
+PASS lastKeyboardEvent.type is "keydown"
PASS lastKeyboardEvent.keyCode is 33
PASS lastKeyboardEvent.keyLocation is 3
PASS lastKeyboardEvent.type is "keydown"
@@ -52,6 +58,12 @@ PASS lastKeyboardEvent.keyLocation is 3
PASS lastKeyboardEvent.type is "keydown"
PASS lastKeyboardEvent.keyCode is 40
PASS lastKeyboardEvent.keyLocation is 3
+PASS lastKeyboardEvent.type is "keydown"
+PASS lastKeyboardEvent.keyCode is 45
+PASS lastKeyboardEvent.keyLocation is 3
+PASS lastKeyboardEvent.type is "keydown"
+PASS lastKeyboardEvent.keyCode is 46
+PASS lastKeyboardEvent.keyLocation is 3
PASS successfullyParsed is true
TEST COMPLETE
diff --git a/LayoutTests/fast/events/script-tests/keydown-numpad-keys.js b/LayoutTests/fast/events/script-tests/keydown-numpad-keys.js
index bc1b3f4..2174cb9 100644
--- a/LayoutTests/fast/events/script-tests/keydown-numpad-keys.js
+++ b/LayoutTests/fast/events/script-tests/keydown-numpad-keys.js
@@ -40,6 +40,8 @@ if (window.eventSender) {
testKeyEventWithLocation("rightArrow", 0, 39);
testKeyEventWithLocation("upArrow", 0, 38);
testKeyEventWithLocation("downArrow", 0, 40);
+ testKeyEventWithLocation("insert", 0, 45);
+ testKeyEventWithLocation("delete", 0, 46);
// location=3 indicates that we send events as numeric-pad keys.
testKeyEventWithLocation("pageUp", 3, 33);
@@ -50,6 +52,8 @@ if (window.eventSender) {
testKeyEventWithLocation("rightArrow", 3, 39);
testKeyEventWithLocation("upArrow", 3, 38);
testKeyEventWithLocation("downArrow", 3, 40);
+ testKeyEventWithLocation("insert", 3, 45);
+ testKeyEventWithLocation("delete", 3, 46);
} else {
debug("This test requires DumpRenderTree. To manually test, 1) focus on the textarea above and push numpad keys without locking NumLock and 2) see if the location= value is 3 (DOM_KEY_LOCATION_NUMPAD specified in DOM level 3).");
}
diff --git a/LayoutTests/fast/events/special-key-events-in-input-text-expected.txt b/LayoutTests/fast/events/special-key-events-in-input-text-expected.txt
index b0b8627..78bfaf8 100644
--- a/LayoutTests/fast/events/special-key-events-in-input-text-expected.txt
+++ b/LayoutTests/fast/events/special-key-events-in-input-text-expected.txt
@@ -43,3 +43,7 @@ Backspace:
INPUT - keydown - false,false,false,false - U+0008 - 8 - 0. Value: "0".
INPUT - keyup - false,false,false,false - U+0008 - 8 - 0. Value: "".
+Print screen:
+INPUT - keydown - false,false,false,false - U+0000 - 44 - 0. Value: "".
+INPUT - keyup - false,false,false,false - U+0000 - 44 - 0. Value: "".
+
diff --git a/LayoutTests/fast/events/special-key-events-in-input-text.html b/LayoutTests/fast/events/special-key-events-in-input-text.html
index d0f8d96..32e653b 100644
--- a/LayoutTests/fast/events/special-key-events-in-input-text.html
+++ b/LayoutTests/fast/events/special-key-events-in-input-text.html
@@ -56,6 +56,8 @@ if (window.layoutTestController) {
eventSender.keyDown("0", ["shiftKey"]);
log("<br>Backspace:");
eventSender.keyDown("\x08", []);
+ log("<br>Print screen:");
+ eventSender.keyDown("printScreen", []);
}
</script>
</body></html>
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index d456209..459b9ae 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,17 @@
+2010-08-02 Martin Robinson <mrobinson at igalia.com>
+
+ Reviewed by Xan Lopez.
+
+ [Gtk] DOM listeners get wrong keycodes for some keys
+ https://bugs.webkit.org/show_bug.cgi?id=35170
+
+ Emit the proper DOM keyCode for the print screen, keypad insert,
+ and keypad delete keys.
+
+ * platform/gtk/KeyEventGtk.cpp:
+ (WebCore::windowsKeyCodeForKeyEvent): Fix mapping between GDK key codes
+ and Windows key codes.
+
2010-08-02 Dirk Schulze <krit at webkit.org>
Unreviewed sort of XCode project file.
diff --git a/WebCore/platform/gtk/KeyEventGtk.cpp b/WebCore/platform/gtk/KeyEventGtk.cpp
index 193b7e5..e9756d8 100644
--- a/WebCore/platform/gtk/KeyEventGtk.cpp
+++ b/WebCore/platform/gtk/KeyEventGtk.cpp
@@ -264,15 +264,14 @@ static int windowsKeyCodeForKeyEvent(unsigned int keycode)
case GDK_Select:
return VK_SELECT; // (29) SELECT key
case GDK_Print:
- return VK_PRINT; // (2A) PRINT key
+ return VK_SNAPSHOT; // (2C) PRINT SCREEN key
case GDK_Execute:
return VK_EXECUTE;// (2B) EXECUTE key
- //dunno on this
- //case GDK_PrintScreen:
- // return VK_SNAPSHOT; // (2C) PRINT SCREEN key
case GDK_Insert:
+ case GDK_KP_Insert:
return VK_INSERT; // (2D) INS key
case GDK_Delete:
+ case GDK_KP_Delete:
return VK_DELETE; // (2E) DEL key
case GDK_Help:
return VK_HELP; // (2F) HELP key
diff --git a/WebKitTools/ChangeLog b/WebKitTools/ChangeLog
index 897b97c..8dc3f6b 100644
--- a/WebKitTools/ChangeLog
+++ b/WebKitTools/ChangeLog
@@ -1,5 +1,26 @@
2010-08-02 Martin Robinson <mrobinson at igalia.com>
+ Reviewed by Xan Lopez.
+
+ [Gtk] DOM listeners get wrong keycodes for some keys
+ https://bugs.webkit.org/show_bug.cgi?id=35170
+
+ Add support to all event senders for simulating keypad insert
+ and print screen keys.
+
+ * DumpRenderTree/chromium/EventSender.cpp:
+ (EventSender::keyDown): Add support for generating keypad insert and print screen.
+ * DumpRenderTree/gtk/EventSender.cpp:
+ (keyDownCallback): Ditto.
+ * DumpRenderTree/mac/EventSendingController.mm:
+ (-[EventSendingController keyDown:withModifiers:withLocation:]): Ditto.
+ * DumpRenderTree/qt/EventSenderQt.cpp:
+ (EventSender::keyDown): Ditto.
+ * DumpRenderTree/win/EventSender.cpp:
+ (keyDownCallback): Ditto.
+
+2010-08-02 Martin Robinson <mrobinson at igalia.com>
+
Build fix for building against development versions of GTK+. GTK 2.22
has not yet been released, so these function definitions must be conditionalized
on the development version.
diff --git a/WebKitTools/DumpRenderTree/chromium/EventSender.cpp b/WebKitTools/DumpRenderTree/chromium/EventSender.cpp
index fd7ba2d..4e84c96 100644
--- a/WebKitTools/DumpRenderTree/chromium/EventSender.cpp
+++ b/WebKitTools/DumpRenderTree/chromium/EventSender.cpp
@@ -541,6 +541,8 @@ void EventSender::keyDown(const CppArgumentList& arguments, CppVariant* result)
code = base::VKEY_LEFT;
else if ("upArrow" == codeStr)
code = base::VKEY_UP;
+ else if ("insert" == codeStr)
+ code = base::VKEY_INSERT;
else if ("delete" == codeStr)
code = base::VKEY_DELETE;
else if ("pageUp" == codeStr)
@@ -551,6 +553,8 @@ void EventSender::keyDown(const CppArgumentList& arguments, CppVariant* result)
code = base::VKEY_HOME;
else if ("end" == codeStr)
code = base::VKEY_END;
+ else if ("printScreen" == codeStr)
+ code = base::VKEY_SNAPSHOT;
else {
// Compare the input string with the function-key names defined by the
// DOM spec (i.e. "F1",...,"F24"). If the input string is a function-key
diff --git a/WebKitTools/DumpRenderTree/gtk/EventSender.cpp b/WebKitTools/DumpRenderTree/gtk/EventSender.cpp
index 437ee1b..4f4246f 100644
--- a/WebKitTools/DumpRenderTree/gtk/EventSender.cpp
+++ b/WebKitTools/DumpRenderTree/gtk/EventSender.cpp
@@ -472,9 +472,13 @@ static JSValueRef keyDownCallback(JSContextRef context, JSObjectRef function, JS
gdkKeySym = GDK_KP_Home;
else if (JSStringIsEqualToUTF8CString(character, "end"))
gdkKeySym = GDK_KP_End;
+ else if (JSStringIsEqualToUTF8CString(character, "insert"))
+ gdkKeySym = GDK_KP_Insert;
+ else if (JSStringIsEqualToUTF8CString(character, "delete"))
+ gdkKeySym = GDK_KP_Delete;
else
- // Assume we only get arrow/pgUp/pgDn/home/end keys with
- // location=NUMPAD for now.
+ // If we get some other key specified with the numpad location,
+ // crash here, so we add it sooner rather than later.
g_assert_not_reached();
} else {
if (JSStringIsEqualToUTF8CString(character, "leftArrow"))
@@ -493,8 +497,12 @@ static JSValueRef keyDownCallback(JSContextRef context, JSObjectRef function, JS
gdkKeySym = GDK_Home;
else if (JSStringIsEqualToUTF8CString(character, "end"))
gdkKeySym = GDK_End;
+ else if (JSStringIsEqualToUTF8CString(character, "insert"))
+ gdkKeySym = GDK_Insert;
else if (JSStringIsEqualToUTF8CString(character, "delete"))
gdkKeySym = GDK_Delete;
+ else if (JSStringIsEqualToUTF8CString(character, "printScreen"))
+ gdkKeySym = GDK_Print;
else if (JSStringIsEqualToUTF8CString(character, "F1"))
gdkKeySym = GDK_F1;
else if (JSStringIsEqualToUTF8CString(character, "F2"))
diff --git a/WebKitTools/DumpRenderTree/mac/EventSendingController.mm b/WebKitTools/DumpRenderTree/mac/EventSendingController.mm
index 9d2fc75..77999bd 100644
--- a/WebKitTools/DumpRenderTree/mac/EventSendingController.mm
+++ b/WebKitTools/DumpRenderTree/mac/EventSendingController.mm
@@ -597,10 +597,18 @@ static int buildModifierFlags(const WebScriptObject* modifiers)
const unichar ch = NSEndFunctionKey;
eventCharacter = [NSString stringWithCharacters:&ch length:1];
keyCode = 0x77;
+ } else if ([character isEqualToString:@"insert"]) {
+ const unichar ch = NSInsertFunctionKey;
+ eventCharacter = [NSString stringWithCharacters:&ch length:1];
+ keyCode = 0x72;
} else if ([character isEqualToString:@"delete"]) {
const unichar ch = NSDeleteFunctionKey;
eventCharacter = [NSString stringWithCharacters:&ch length:1];
keyCode = 0x75;
+ } else if ([character isEqualToString:@"printScreen"]) {
+ const unichar ch = NSPrintScreenFunctionKey;
+ eventCharacter = [NSString stringWithCharacters:&ch length:1];
+ keyCode = 0x0; // There is no known virtual key code for PrintScreen.
}
// Compare the input string with the function-key names defined by the DOM spec (i.e. "F1",...,"F24").
diff --git a/WebKitTools/DumpRenderTree/qt/EventSenderQt.cpp b/WebKitTools/DumpRenderTree/qt/EventSenderQt.cpp
index 1e495b1..63dbd2a 100644
--- a/WebKitTools/DumpRenderTree/qt/EventSenderQt.cpp
+++ b/WebKitTools/DumpRenderTree/qt/EventSenderQt.cpp
@@ -334,9 +334,15 @@ void EventSender::keyDown(const QString& string, const QStringList& modifiers, u
} else if (string == QLatin1String("end")) {
s = QString();
code = Qt::Key_End;
+ } else if (string == QLatin1String("insert")) {
+ s = QString();
+ code = Qt::Key_Insert;
} else if (string == QLatin1String("delete")) {
s = QString();
code = Qt::Key_Delete;
+ } else if (string == QLatin1String("printScreen")) {
+ s = QString();
+ code = Qt::Key_Print;
}
}
QKeyEvent event(QEvent::KeyPress, code, modifs, s);
diff --git a/WebKitTools/DumpRenderTree/win/EventSender.cpp b/WebKitTools/DumpRenderTree/win/EventSender.cpp
index c9749e7..94f0945 100644
--- a/WebKitTools/DumpRenderTree/win/EventSender.cpp
+++ b/WebKitTools/DumpRenderTree/win/EventSender.cpp
@@ -467,8 +467,12 @@ static JSValueRef keyDownCallback(JSContextRef context, JSObjectRef function, JS
virtualKeyCode = VK_HOME;
else if (JSStringIsEqualToUTF8CString(character, "end"))
virtualKeyCode = VK_END;
+ else if (JSStringIsEqualToUTF8CString(character, "insert"))
+ virtualKeyCode = VK_INSERT;
else if (JSStringIsEqualToUTF8CString(character, "delete"))
virtualKeyCode = VK_DELETE;
+ else if (JSStringIsEqualToUTF8CString(character, "printScreen"))
+ virtualKeyCode = VK_SNAPSHOT;
else {
charCode = JSStringGetCharactersPtr(character)[0];
virtualKeyCode = LOBYTE(VkKeyScan(charCode));
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list