- Revision
- 144016
- Author
- commit-qu...@webkit.org
- Date
- 2013-02-26 00:32:32 -0800 (Tue, 26 Feb 2013)
Log Message
keydown and keyup events have zero keycode for some numeric pad keys under Chromium on Linux
https://bugs.webkit.org/show_bug.cgi?id=85642
Source/WebCore:
Add missing key mappings for GDK_KP_Begin, GDK_KP_Insert, GDK_KP_Delete and GDK_ISO_Level3_Shift.
Patch by James Weatherall <w...@chromium.org> on 2013-02-26
Reviewed by Ojan Vafai.
* platform/chromium/KeyCodeConversionGtk.cpp:
(WebCore::windowsKeyCodeForKeyEvent):
Source/WebKit/chromium:
Add tests to verify that the fixed keys generate the same keyCode values
as their equivalents.
Patch by James Weatherall <w...@chromium.org> on 2013-02-26
Reviewed by Ojan Vafai.
* WebKit.gypi:
* tests/KeyCodeConversionTest.cpp: Added.
(WebCore):
(WebCore::TEST):
Modified Paths
Added Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (144015 => 144016)
--- trunk/Source/WebCore/ChangeLog 2013-02-26 08:28:52 UTC (rev 144015)
+++ trunk/Source/WebCore/ChangeLog 2013-02-26 08:32:32 UTC (rev 144016)
@@ -1,3 +1,15 @@
+2013-02-26 James Weatherall <w...@chromium.org>
+
+ keydown and keyup events have zero keycode for some numeric pad keys under Chromium on Linux
+ https://bugs.webkit.org/show_bug.cgi?id=85642
+
+ Add missing key mappings for GDK_KP_Begin, GDK_KP_Insert, GDK_KP_Delete and GDK_ISO_Level3_Shift.
+
+ Reviewed by Ojan Vafai.
+
+ * platform/chromium/KeyCodeConversionGtk.cpp:
+ (WebCore::windowsKeyCodeForKeyEvent):
+
2013-02-25 Adam Barth <aba...@webkit.org>
6% regression in intl1 page cycler on chromium-mac
Modified: trunk/Source/WebCore/platform/chromium/KeyCodeConversionGtk.cpp (144015 => 144016)
--- trunk/Source/WebCore/platform/chromium/KeyCodeConversionGtk.cpp 2013-02-26 08:28:52 UTC (rev 144015)
+++ trunk/Source/WebCore/platform/chromium/KeyCodeConversionGtk.cpp 2013-02-26 08:32:32 UTC (rev 144016)
@@ -88,6 +88,12 @@
return VKEY_RIGHT; // (27) RIGHT ARROW key
case GDK_KP_Down:
return VKEY_DOWN; // (28) DOWN ARROW key
+ case GDK_KP_Begin:
+ return VKEY_CLEAR; // (12) CLEAR key
+ case GDK_KP_Insert:
+ return VKEY_INSERT; // (45) INS key
+ case GDK_KP_Delete:
+ return VKEY_DELETE; // (46) DEL key
case GDK_BackSpace:
return VKEY_BACK; // (08) BACKSPACE key
@@ -114,6 +120,7 @@
case GDK_Alt_L:
return VKEY_LMENU; // (A4) Left ALT key
case GDK_Alt_R:
+ case GDK_ISO_Level3_Shift:
return VKEY_RMENU; // (A5) Right ALT key
case GDK_Pause:
Modified: trunk/Source/WebKit/chromium/ChangeLog (144015 => 144016)
--- trunk/Source/WebKit/chromium/ChangeLog 2013-02-26 08:28:52 UTC (rev 144015)
+++ trunk/Source/WebKit/chromium/ChangeLog 2013-02-26 08:32:32 UTC (rev 144016)
@@ -1,3 +1,18 @@
+2013-02-26 James Weatherall <w...@chromium.org>
+
+ keydown and keyup events have zero keycode for some numeric pad keys under Chromium on Linux
+ https://bugs.webkit.org/show_bug.cgi?id=85642
+
+ Add tests to verify that the fixed keys generate the same keyCode values
+ as their equivalents.
+
+ Reviewed by Ojan Vafai.
+
+ * WebKit.gypi:
+ * tests/KeyCodeConversionTest.cpp: Added.
+ (WebCore):
+ (WebCore::TEST):
+
2013-02-25 Rouslan Solomakhin <rous...@chromium.org>
Add expandedToParagraph() method to WebRange
Modified: trunk/Source/WebKit/chromium/WebKit.gypi (144015 => 144016)
--- trunk/Source/WebKit/chromium/WebKit.gypi 2013-02-26 08:28:52 UTC (rev 144015)
+++ trunk/Source/WebKit/chromium/WebKit.gypi 2013-02-26 08:32:32 UTC (rev 144016)
@@ -86,6 +86,7 @@
'tests/MockDiscardablePixelRef.h',
'tests/MockImageDecoder.h',
'tests/KeyboardTest.cpp',
+ 'tests/KeyCodeConversionTest.cpp',
'tests/KURLTest.cpp',
'tests/LevelDBTest.cpp',
'tests/LinkHighlightTest.cpp',
Added: trunk/Source/WebKit/chromium/tests/KeyCodeConversionTest.cpp (0 => 144016)
--- trunk/Source/WebKit/chromium/tests/KeyCodeConversionTest.cpp (rev 0)
+++ trunk/Source/WebKit/chromium/tests/KeyCodeConversionTest.cpp 2013-02-26 08:32:32 UTC (rev 144016)
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+
+#include "KeyCodeConversion.h"
+
+#include "KeyboardCodes.h"
+#include <gdk/gdkkeysyms.h>
+#include <gtest/gtest.h>
+
+using namespace WebCore;
+
+namespace {
+
+#if OS(LINUX)
+TEST(KeyCodeConversionTest, KeyPadClear)
+{
+ EXPECT_EQ(VKEY_CLEAR, windowsKeyCodeForKeyEvent(GDK_KP_Begin));
+}
+
+TEST(KeyCodeConversionTest, KeyPadInsert)
+{
+ EXPECT_EQ(windowsKeyCodeForKeyEvent(GDK_Insert),
+ windowsKeyCodeForKeyEvent(GDK_KP_Begin));
+}
+
+TEST(KeyCodeConversionTest, KeyPadDelete)
+{
+ EXPECT_EQ(windowsKeyCodeForKeyEvent(GDK_Delete),
+ windowsKeyCodeForKeyEvent(GDK_KP_Delete));
+}
+
+TEST(KeyCodeConversionTest, AltGr)
+{
+ EXPECT_EQ(windowsKeyCodeForKeyEvent(GDK_Alt_R),
+ windowsKeyCodeForKeyEvent(GDK_ISO_Level3_Shift));
+}
+#endif
+
+} // anonymous namespace