[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-10851-g50815da

andersca at apple.com andersca at apple.com
Wed Dec 22 18:03:33 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 67a7ef5d6dcf5cea83c3b23e7e7ed3b2ddc0f761
Author: andersca at apple.com <andersca at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Mon Dec 6 19:48:33 2010 +0000

    Dispatch keyboard events in the Carbon event model
    https://bugs.webkit.org/show_bug.cgi?id=50503
    
    Reviewed by Sam Weinig.
    
    WebKit2:
    
    * Shared/WebEvent.h:
    (WebKit::WebKeyboardEvent::macCharCode):
    * Shared/WebKeyboardEvent.cpp:
    (WebKit::WebKeyboardEvent::WebKeyboardEvent):
    (WebKit::WebKeyboardEvent::encode):
    (WebKit::WebKeyboardEvent::decode):
    Add macCharCode field.
    
    * Shared/mac/WebEventFactory.mm:
    (WebKit::WebEventFactory::createWebKeyboardEvent):
    * Shared/qt/WebEventFactoryQt.cpp:
    (WebKit::WebEventFactory::createWebKeyboardEvent):
    * Shared/win/WebEventFactory.cpp:
    (WebKit::WebEventFactory::createWebKeyboardEvent):
    Pass along the Mac char code.
    
    * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
    (WebKit::NetscapePlugin::platformHandleKeyboardEvent):
    Convert the event to a Carobn event.
    
    WebKitLibraries:
    
    Make WKGetNSEventKeyChar available in 32-bit.
    
    * WebKitSystemInterface.h:
    * libWebKitSystemInterfaceLeopard.a:
    * libWebKitSystemInterfaceSnowLeopard.a:
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@73381 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit2/ChangeLog b/WebKit2/ChangeLog
index 97d633e..39788c6 100644
--- a/WebKit2/ChangeLog
+++ b/WebKit2/ChangeLog
@@ -1,3 +1,30 @@
+2010-12-03  Anders Carlsson  <andersca at apple.com>
+
+        Reviewed by Sam Weinig.
+
+        Dispatch keyboard events in the Carbon event model
+        https://bugs.webkit.org/show_bug.cgi?id=50503
+
+        * Shared/WebEvent.h:
+        (WebKit::WebKeyboardEvent::macCharCode):
+        * Shared/WebKeyboardEvent.cpp:
+        (WebKit::WebKeyboardEvent::WebKeyboardEvent):
+        (WebKit::WebKeyboardEvent::encode):
+        (WebKit::WebKeyboardEvent::decode):
+        Add macCharCode field.
+
+        * Shared/mac/WebEventFactory.mm:
+        (WebKit::WebEventFactory::createWebKeyboardEvent):
+        * Shared/qt/WebEventFactoryQt.cpp:
+        (WebKit::WebEventFactory::createWebKeyboardEvent):
+        * Shared/win/WebEventFactory.cpp:
+        (WebKit::WebEventFactory::createWebKeyboardEvent):
+        Pass along the Mac char code.
+        
+        * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
+        (WebKit::NetscapePlugin::platformHandleKeyboardEvent):
+        Convert the event to a Carobn event.
+
 2010-12-03  John Sullivan  <sullivan at apple.com>
 
         Reviewed by Adam Roben.
diff --git a/WebKit2/Shared/WebEvent.h b/WebKit2/Shared/WebEvent.h
index 34245ec..1b9ca9a 100644
--- a/WebKit2/Shared/WebEvent.h
+++ b/WebKit2/Shared/WebEvent.h
@@ -168,13 +168,14 @@ class WebKeyboardEvent : public WebEvent {
 public:
     WebKeyboardEvent() { }
 
-    WebKeyboardEvent(Type, const String& text, const String& unmodifiedText, const String& keyIdentifier, int windowsVirtualKeyCode, int nativeVirtualKeyCode, bool isAutoRepeat, bool isKeypad, bool isSystemKey, Modifiers, double timestamp);
+    WebKeyboardEvent(Type, const String& text, const String& unmodifiedText, const String& keyIdentifier, int windowsVirtualKeyCode, int nativeVirtualKeyCode, int macCharCode, bool isAutoRepeat, bool isKeypad, bool isSystemKey, Modifiers, double timestamp);
 
     const String& text() const { return m_text; }
     const String& unmodifiedText() const { return m_unmodifiedText; }
     const String& keyIdentifier() const { return m_keyIdentifier; }
     int32_t windowsVirtualKeyCode() const { return m_windowsVirtualKeyCode; }
     int32_t nativeVirtualKeyCode() const { return m_nativeVirtualKeyCode; }
+    int32_t macCharCode() const { return m_macCharCode; }
     bool isAutoRepeat() const { return m_isAutoRepeat; }
     bool isKeypad() const { return m_isKeypad; }
     bool isSystemKey() const { return m_isSystemKey; }
@@ -190,6 +191,7 @@ private:
     String m_keyIdentifier;
     int32_t m_windowsVirtualKeyCode;
     int32_t m_nativeVirtualKeyCode;
+    int32_t m_macCharCode;
     bool m_isAutoRepeat;
     bool m_isKeypad;
     bool m_isSystemKey;
diff --git a/WebKit2/Shared/WebKeyboardEvent.cpp b/WebKit2/Shared/WebKeyboardEvent.cpp
index 80d9f03..08aaab8 100644
--- a/WebKit2/Shared/WebKeyboardEvent.cpp
+++ b/WebKit2/Shared/WebKeyboardEvent.cpp
@@ -29,13 +29,14 @@
 
 namespace WebKit {
 
-WebKeyboardEvent::WebKeyboardEvent(Type type, const String& text, const String& unmodifiedText, const String& keyIdentifier, int windowsVirtualKeyCode, int nativeVirtualKeyCode, bool isAutoRepeat, bool isKeypad, bool isSystemKey, Modifiers modifiers, double timestamp)
+WebKeyboardEvent::WebKeyboardEvent(Type type, const String& text, const String& unmodifiedText, const String& keyIdentifier, int windowsVirtualKeyCode, int nativeVirtualKeyCode, int macCharCode, bool isAutoRepeat, bool isKeypad, bool isSystemKey, Modifiers modifiers, double timestamp)
     : WebEvent(type, modifiers, timestamp)
     , m_text(text)
     , m_unmodifiedText(unmodifiedText)
     , m_keyIdentifier(keyIdentifier)
     , m_windowsVirtualKeyCode(windowsVirtualKeyCode)
     , m_nativeVirtualKeyCode(nativeVirtualKeyCode)
+    , m_macCharCode(macCharCode)
     , m_isAutoRepeat(isAutoRepeat)
     , m_isKeypad(isKeypad)
     , m_isSystemKey(isSystemKey)
@@ -47,7 +48,8 @@ void WebKeyboardEvent::encode(CoreIPC::ArgumentEncoder* encoder) const
 {
     WebEvent::encode(encoder);
 
-    encoder->encode(CoreIPC::In(m_text, m_unmodifiedText, m_keyIdentifier, m_windowsVirtualKeyCode, m_nativeVirtualKeyCode, m_isAutoRepeat, m_isKeypad, m_isSystemKey));
+    encoder->encode(CoreIPC::In(m_text, m_unmodifiedText, m_keyIdentifier, m_windowsVirtualKeyCode, m_nativeVirtualKeyCode, m_macCharCode));
+    encoder->encode(CoreIPC::In(m_isAutoRepeat, m_isKeypad, m_isSystemKey));
 }
 
 bool WebKeyboardEvent::decode(CoreIPC::ArgumentDecoder* decoder, WebKeyboardEvent& t)
@@ -55,7 +57,10 @@ bool WebKeyboardEvent::decode(CoreIPC::ArgumentDecoder* decoder, WebKeyboardEven
     if (!WebEvent::decode(decoder, t))
         return false;
 
-    return decoder->decode(CoreIPC::Out(t.m_text, t.m_unmodifiedText, t.m_keyIdentifier, t.m_windowsVirtualKeyCode, t.m_nativeVirtualKeyCode, t.m_isAutoRepeat, t.m_isKeypad, t.m_isSystemKey));
+    if (!decoder->decode(CoreIPC::Out(t.m_text, t.m_unmodifiedText, t.m_keyIdentifier, t.m_windowsVirtualKeyCode, t.m_nativeVirtualKeyCode, t.m_macCharCode)))
+        return false;
+
+    return decoder->decode(CoreIPC::Out(t.m_isAutoRepeat, t.m_isKeypad, t.m_isSystemKey));
 }
 
 bool WebKeyboardEvent::isKeyboardEventType(Type type)
diff --git a/WebKit2/Shared/mac/WebEventFactory.mm b/WebKit2/Shared/mac/WebEventFactory.mm
index 9068995..cedcd48 100644
--- a/WebKit2/Shared/mac/WebEventFactory.mm
+++ b/WebKit2/Shared/mac/WebEventFactory.mm
@@ -1013,13 +1013,14 @@ WebKeyboardEvent WebEventFactory::createWebKeyboardEvent(NSEvent *event, NSView
     String keyIdentifier            = keyIdentifierForKeyEvent(event);
     int windowsVirtualKeyCode       = windowsKeyCodeForKeyEvent(event);
     int nativeVirtualKeyCode        = [event keyCode];
+    int macCharCode                 = WKGetNSEventKeyChar(event);
     bool autoRepeat                 = ([event type] != NSFlagsChanged) && [event isARepeat];
     bool isKeypad                   = isKeypadEvent(event);
     bool isSystemKey                = false; // SystemKey is always false on the Mac.
     WebEvent::Modifiers modifiers   = modifiersForEvent(event);
     double timestamp                = [event timestamp];
 
-    return WebKeyboardEvent(type, text, unmodifiedText, keyIdentifier, windowsVirtualKeyCode, nativeVirtualKeyCode, autoRepeat, isKeypad, isSystemKey, modifiers, timestamp);
+    return WebKeyboardEvent(type, text, unmodifiedText, keyIdentifier, windowsVirtualKeyCode, nativeVirtualKeyCode, macCharCode, autoRepeat, isKeypad, isSystemKey, modifiers, timestamp);
 }
 
 } // namespace WebKit
diff --git a/WebKit2/Shared/qt/WebEventFactoryQt.cpp b/WebKit2/Shared/qt/WebEventFactoryQt.cpp
index f17d4e7..39a6455 100644
--- a/WebKit2/Shared/qt/WebEventFactoryQt.cpp
+++ b/WebKit2/Shared/qt/WebEventFactoryQt.cpp
@@ -153,11 +153,12 @@ WebKeyboardEvent WebEventFactory::createWebKeyboardEvent(QKeyEvent* event)
     bool isKeypad                   = (state & Qt::KeypadModifier);
     const String keyIdentifier      = keyIdentifierForQtKeyCode(event->key());
     int windowsVirtualKeyCode       = windowsKeyCodeForKeyEvent(event->key(), isKeypad);
-    int  nativeVirtualKeyCode       = event->nativeVirtualKey();
+    int nativeVirtualKeyCode        = event->nativeVirtualKey();
+    int macCharCode                 = 0;
     WebEvent::Modifiers modifiers   = modifiersForEvent(event->modifiers());
     double timestamp                = WTF::currentTime();
 
-    return WebKeyboardEvent(type, text, unmodifiedText, keyIdentifier, windowsVirtualKeyCode, nativeVirtualKeyCode, isAutoRepeat, isKeypad, isSystemKey, modifiers, timestamp);
+    return WebKeyboardEvent(type, text, unmodifiedText, keyIdentifier, windowsVirtualKeyCode, nativeVirtualKeyCode, macCharCode, isAutoRepeat, isKeypad, isSystemKey, modifiers, timestamp);
 }
 
 #if ENABLE(TOUCH_EVENTS)
diff --git a/WebKit2/Shared/win/WebEventFactory.cpp b/WebKit2/Shared/win/WebEventFactory.cpp
index 1d3af10..7789271 100644
--- a/WebKit2/Shared/win/WebEventFactory.cpp
+++ b/WebKit2/Shared/win/WebEventFactory.cpp
@@ -450,13 +450,14 @@ WebKeyboardEvent WebEventFactory::createWebKeyboardEvent(HWND hwnd, UINT message
     String keyIdentifier            = keyIdentifierFromEvent(wparam, type);
     int windowsVirtualKeyCode       = static_cast<int>(wparam);
     int nativeVirtualKeyCode        = static_cast<int>(wparam);
+    int macCharCode                 = 0;
     bool autoRepeat                 = HIWORD(lparam) & KF_REPEAT;
     bool isKeypad                   = isKeypadEvent(wparam, lparam, type);
     bool isSystemKey                = isSystemKeyEvent(message);
     WebEvent::Modifiers modifiers   = modifiersForCurrentKeyState();
     double timestamp                = ::GetTickCount() * 0.001; // ::GetTickCount returns milliseconds (Chrome uses GetMessageTime() / 1000.0)
 
-    return WebKeyboardEvent(type, text, unmodifiedText, keyIdentifier, windowsVirtualKeyCode, nativeVirtualKeyCode, autoRepeat, isKeypad, isSystemKey, modifiers, timestamp);
+    return WebKeyboardEvent(type, text, unmodifiedText, keyIdentifier, windowsVirtualKeyCode, nativeVirtualKeyCode, macCharCode, autoRepeat, isKeypad, isSystemKey, modifiers, timestamp);
 }
 
 } // namespace WebKit
diff --git a/WebKit2/WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm b/WebKit2/WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm
index 4f2afc0..6f5ebee 100644
--- a/WebKit2/WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm
+++ b/WebKit2/WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm
@@ -532,13 +532,33 @@ static NPCocoaEvent initializeKeyboardEvent(const WebKeyboardEvent& keyboardEven
 bool NetscapePlugin::platformHandleKeyboardEvent(const WebKeyboardEvent& keyboardEvent)
 {
     switch (m_eventModel) {
-        case NPEventModelCocoa: {
-            NPCocoaEvent event  = initializeKeyboardEvent(keyboardEvent);
-            return NPP_HandleEvent(&event);
-        }
+    case NPEventModelCocoa: {
+        NPCocoaEvent event = initializeKeyboardEvent(keyboardEvent);
+        return NPP_HandleEvent(&event);
+    }
 
+    case NPEventModelCarbon: {
+        EventKind eventKind = nullEvent;
+
+        switch (keyboardEvent.type()) {
+        case WebEvent::KeyDown:
+            eventKind = keyboardEvent.isAutoRepeat() ? autoKey : keyDown;
+            break;
+        case WebEvent::KeyUp:
+            eventKind = keyUp;
+            break;
         default:
             ASSERT_NOT_REACHED();
+        }
+
+        EventRecord event = initializeEventRecord(eventKind);
+        event.modifiers = modifiersForEvent(keyboardEvent);
+        event.message = keyboardEvent.nativeVirtualKeyCode() << 8 | keyboardEvent.macCharCode();
+        return NPP_HandleEvent(&event);
+    }
+
+    default:
+        ASSERT_NOT_REACHED();
     }
 
     return false;
diff --git a/WebKitLibraries/ChangeLog b/WebKitLibraries/ChangeLog
index 34e4e6d..e045333 100644
--- a/WebKitLibraries/ChangeLog
+++ b/WebKitLibraries/ChangeLog
@@ -1,3 +1,16 @@
+2010-12-03  Anders Carlsson  <andersca at apple.com>
+
+        Reviewed by Sam Weinig.
+
+        Dispatch keyboard events in the Carbon event model
+        https://bugs.webkit.org/show_bug.cgi?id=50503
+
+        Make WKGetNSEventKeyChar available in 32-bit.
+
+        * WebKitSystemInterface.h:
+        * libWebKitSystemInterfaceLeopard.a:
+        * libWebKitSystemInterfaceSnowLeopard.a:
+
 2010-12-02  Anders Carlsson  <andersca at apple.com>
 
         Reviewed by Sam Weinig.
diff --git a/WebKitLibraries/WebKitSystemInterface.h b/WebKitLibraries/WebKitSystemInterface.h
index f2f00fe..1989900 100644
--- a/WebKitLibraries/WebKitSystemInterface.h
+++ b/WebKitLibraries/WebKitSystemInterface.h
@@ -303,13 +303,11 @@ void WKWindowBounceAnimationSetAnimationProgress(WKWindowBounceAnimationContextR
 
 #if defined(__x86_64__)
 #import <mach/mig.h>
-
 CFRunLoopSourceRef WKCreateMIGServerSource(mig_subsystem_t subsystem, mach_port_t serverPort);
+#endif // defined(__x86_64__)
 
 NSUInteger WKGetInputPanelWindowStyle(void);
- 
 UInt8 WKGetNSEventKeyChar(NSEvent *);
-#endif // defined(__x86_64__)
 #endif // !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD)
 
 @class CAPropertyAnimation;
diff --git a/WebKitLibraries/libWebKitSystemInterfaceLeopard.a b/WebKitLibraries/libWebKitSystemInterfaceLeopard.a
index cdee8a3..459ebe2 100644
Binary files a/WebKitLibraries/libWebKitSystemInterfaceLeopard.a and b/WebKitLibraries/libWebKitSystemInterfaceLeopard.a differ
diff --git a/WebKitLibraries/libWebKitSystemInterfaceSnowLeopard.a b/WebKitLibraries/libWebKitSystemInterfaceSnowLeopard.a
index 2541fd7..a136510 100644
Binary files a/WebKitLibraries/libWebKitSystemInterfaceSnowLeopard.a and b/WebKitLibraries/libWebKitSystemInterfaceSnowLeopard.a differ

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list