[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