2009-10-05 Jakub Wieczorek <faw217@gmail.com>
authoreric@webkit.org <eric@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 5 Oct 2009 22:37:32 +0000 (22:37 +0000)
committereric@webkit.org <eric@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 5 Oct 2009 22:37:32 +0000 (22:37 +0000)
        Reviewed by Simon Hausmann.

        [Qt] EventSender::keyDown() cannot send function-key events.
        https://bugs.webkit.org/show_bug.cgi?id=30044

        This affects the fast/events/keydown-function-keys.html layout test.

        * DumpRenderTree/qt/jsobjects.cpp:
        (EventSender::keyDown):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@49118 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebKitTools/ChangeLog
WebKitTools/DumpRenderTree/qt/jsobjects.cpp

index 80e912b..171252b 100644 (file)
@@ -1,3 +1,15 @@
+2009-10-05  Jakub Wieczorek  <faw217@gmail.com>
+
+        Reviewed by Simon Hausmann.
+
+        [Qt] EventSender::keyDown() cannot send function-key events.
+        https://bugs.webkit.org/show_bug.cgi?id=30044
+
+        This affects the fast/events/keydown-function-keys.html layout test.
+
+        * DumpRenderTree/qt/jsobjects.cpp:
+        (EventSender::keyDown):
+
 2009-10-05  Vadim Zeitlin  <vadim@wxwidgets.org>
 
         Added --wx-compiler-prefix waf option to allow building wxWebKit with
index fc1c35f..cd91e5a 100644 (file)
@@ -482,8 +482,14 @@ void EventSender::keyDown(const QString &string, const QStringList &modifiers)
             code = string.unicode()->toUpper().unicode();
     } else {
         qDebug() << ">>>>>>>>> keyDown" << string;
+
+        if (string.startsWith(QLatin1Char('F')) && string.count() <= 3) {
+            s = s.mid(1);
+            int functionKey = s.toInt();
+            Q_ASSERT(functionKey >= 1 && functionKey <= 35);
+            code = Qt::Key_F1 + (functionKey - 1);
         // map special keycode strings used by the tests to something that works for Qt/X11
-        if (string == QLatin1String("leftArrow")) {
+        } else if (string == QLatin1String("leftArrow")) {
             s = QString();
             code = Qt::Key_Left;
         } else if (string == QLatin1String("rightArrow")) {