| Index: webkit/glue/event_conversion.cc
|
| ===================================================================
|
| --- webkit/glue/event_conversion.cc (revision 10793)
|
| +++ webkit/glue/event_conversion.cc (working copy)
|
| @@ -22,6 +22,7 @@
|
| #include "base/gfx/point.h"
|
| #include "base/logging.h"
|
| #include "webkit/glue/event_conversion.h"
|
| +#include "webkit/glue/glue_util.h"
|
| #include "webkit/glue/webinputevent.h"
|
| #include "webkit/glue/webkit_glue.h"
|
|
|
| @@ -141,6 +142,8 @@
|
| return PlatformKeyboardEvent::KeyUp;
|
| case WebInputEvent::KEY_DOWN:
|
| return PlatformKeyboardEvent::KeyDown;
|
| + case WebInputEvent::RAW_KEY_DOWN:
|
| + return PlatformKeyboardEvent::RawKeyDown;
|
| case WebInputEvent::CHAR:
|
| return PlatformKeyboardEvent::Char;
|
| default:
|
| @@ -149,175 +152,21 @@
|
| return PlatformKeyboardEvent::KeyDown;
|
| }
|
|
|
| -static inline String ToSingleCharacterString(UChar c) {
|
| - return String(&c, 1);
|
| -}
|
| -
|
| -#if !defined(OS_MACOSX)
|
| -// This function is not used on Mac OS X, and gcc complains.
|
| -static String GetKeyIdentifierForWindowsKeyCode(unsigned short keyCode) {
|
| - switch (keyCode) {
|
| - case VKEY_MENU:
|
| - return "Alt";
|
| - case VKEY_CONTROL:
|
| - return "Control";
|
| - case VKEY_SHIFT:
|
| - return "Shift";
|
| - case VKEY_CAPITAL:
|
| - return "CapsLock";
|
| - case VKEY_LWIN:
|
| - case VKEY_RWIN:
|
| - return "Win";
|
| - case VKEY_CLEAR:
|
| - return "Clear";
|
| - case VKEY_DOWN:
|
| - return "Down";
|
| - // "End"
|
| - case VKEY_END:
|
| - return "End";
|
| - // "Enter"
|
| - case VKEY_RETURN:
|
| - return "Enter";
|
| - case VKEY_EXECUTE:
|
| - return "Execute";
|
| - case VKEY_F1:
|
| - return "F1";
|
| - case VKEY_F2:
|
| - return "F2";
|
| - case VKEY_F3:
|
| - return "F3";
|
| - case VKEY_F4:
|
| - return "F4";
|
| - case VKEY_F5:
|
| - return "F5";
|
| - case VKEY_F6:
|
| - return "F6";
|
| - case VKEY_F7:
|
| - return "F7";
|
| - case VKEY_F8:
|
| - return "F8";
|
| - case VKEY_F9:
|
| - return "F9";
|
| - case VKEY_F10:
|
| - return "F11";
|
| - case VKEY_F12:
|
| - return "F12";
|
| - case VKEY_F13:
|
| - return "F13";
|
| - case VKEY_F14:
|
| - return "F14";
|
| - case VKEY_F15:
|
| - return "F15";
|
| - case VKEY_F16:
|
| - return "F16";
|
| - case VKEY_F17:
|
| - return "F17";
|
| - case VKEY_F18:
|
| - return "F18";
|
| - case VKEY_F19:
|
| - return "F19";
|
| - case VKEY_F20:
|
| - return "F20";
|
| - case VKEY_F21:
|
| - return "F21";
|
| - case VKEY_F22:
|
| - return "F22";
|
| - case VKEY_F23:
|
| - return "F23";
|
| - case VKEY_F24:
|
| - return "F24";
|
| - case VKEY_HELP:
|
| - return "Help";
|
| - case VKEY_HOME:
|
| - return "Home";
|
| - case VKEY_INSERT:
|
| - return "Insert";
|
| - case VKEY_LEFT:
|
| - return "Left";
|
| - case VKEY_NEXT:
|
| - return "PageDown";
|
| - case VKEY_PRIOR:
|
| - return "PageUp";
|
| - case VKEY_PAUSE:
|
| - return "Pause";
|
| - case VKEY_SNAPSHOT:
|
| - return "PrintScreen";
|
| - case VKEY_RIGHT:
|
| - return "Right";
|
| - case VKEY_SCROLL:
|
| - return "Scroll";
|
| - case VKEY_SELECT:
|
| - return "Select";
|
| - case VKEY_UP:
|
| - return "Up";
|
| - // Standard says that DEL becomes U+007F.
|
| - case VKEY_DELETE:
|
| - return "U+007F";
|
| - default:
|
| - return String::format("U+%04X", toupper(keyCode));
|
| - }
|
| -}
|
| -#endif // !defined(OS_MACOSX)
|
| -
|
| -MakePlatformKeyboardEvent::MakePlatformKeyboardEvent(const WebKeyboardEvent& e)
|
| - {
|
| +MakePlatformKeyboardEvent::MakePlatformKeyboardEvent(
|
| + const WebKeyboardEvent& e) {
|
| m_type = ToPlatformKeyboardEventType(e.type);
|
| - if (m_type == Char || m_type == KeyDown) {
|
| -#if defined(OS_MACOSX)
|
| - m_text = &e.text[0];
|
| - m_unmodifiedText = &e.unmodified_text[0];
|
| - m_keyIdentifier = &e.key_identifier[0];
|
| -
|
| - // Always use 13 for Enter/Return -- we don't want to use AppKit's
|
| - // different character for Enter.
|
| - if (m_windowsVirtualKeyCode == '\r') {
|
| - m_text = "\r";
|
| - m_unmodifiedText = "\r";
|
| - }
|
| -
|
| - // The adjustments below are only needed in backward compatibility mode,
|
| - // but we cannot tell what mode we are in from here.
|
| -
|
| - // Turn 0x7F into 8, because backspace needs to always be 8.
|
| - if (m_text == "\x7F")
|
| - m_text = "\x8";
|
| - if (m_unmodifiedText == "\x7F")
|
| - m_unmodifiedText = "\x8";
|
| - // Always use 9 for tab -- we don't want to use AppKit's different character for shift-tab.
|
| - if (m_windowsVirtualKeyCode == 9) {
|
| - m_text = "\x9";
|
| - m_unmodifiedText = "\x9";
|
| - }
|
| -#elif defined(OS_WIN)
|
| - m_text = m_unmodifiedText = ToSingleCharacterString(e.key_code);
|
| -#elif defined(OS_LINUX)
|
| - m_text = m_unmodifiedText = ToSingleCharacterString(e.text);
|
| -#endif
|
| - }
|
| -#if defined(OS_WIN) || defined(OS_LINUX)
|
| - if (m_type != Char)
|
| - m_keyIdentifier = GetKeyIdentifierForWindowsKeyCode(e.key_code);
|
| -#endif
|
| - if (m_type == Char || m_type == KeyDown || m_type == KeyUp ||
|
| - m_type == RawKeyDown) {
|
| - m_windowsVirtualKeyCode = e.key_code;
|
| - } else {
|
| - m_windowsVirtualKeyCode = 0;
|
| - }
|
| + m_text = WebCore::String(e.text);
|
| + m_unmodifiedText = WebCore::String(e.unmodified_text);
|
| + m_keyIdentifier = WebCore::String(e.key_identifier);
|
| m_autoRepeat = (e.modifiers & WebInputEvent::IS_AUTO_REPEAT) != 0;
|
| + m_windowsVirtualKeyCode = e.windows_key_code;
|
| + m_nativeVirtualKeyCode = e.native_key_code;
|
| m_isKeypad = (e.modifiers & WebInputEvent::IS_KEYPAD) != 0;
|
| m_shiftKey = (e.modifiers & WebInputEvent::SHIFT_KEY) != 0;
|
| m_ctrlKey = (e.modifiers & WebInputEvent::CTRL_KEY) != 0;
|
| m_altKey = (e.modifiers & WebInputEvent::ALT_KEY) != 0;
|
| m_metaKey = (e.modifiers & WebInputEvent::META_KEY) != 0;
|
| -#if defined(OS_WIN)
|
| m_isSystemKey = e.system_key;
|
| -// TODO(port): set this field properly for linux and mac.
|
| -#elif defined(OS_LINUX)
|
| - m_isSystemKey = m_altKey;
|
| -#else
|
| - m_isSystemKey = false;
|
| -#endif
|
| }
|
|
|
| void MakePlatformKeyboardEvent::SetKeyType(Type type) {
|
|
|