[SCM] WebKit Debian packaging branch, webkit-1.1, updated. upstream/1.1.17-1283-gcf603cf
eric at webkit.org
eric at webkit.org
Tue Jan 5 23:44:28 UTC 2010
The following commit has been merged in the webkit-1.1 branch:
commit 85c21d5001439f85d9063793153d6a998f465e08
Author: eric at webkit.org <eric at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Tue Dec 8 04:55:46 2009 +0000
2009-12-07 Zhe Su <suzhe at chromium.org>
Reviewed by Darin Fisher.
[Chromium] accesskey is not supported on Chromium Mac.
https://bugs.webkit.org/show_bug.cgi?id=32213
This change fixes (partially) the accesskey issue by decoupling the
code for handling accesskeys and system keys. Because on Mac,
the modifiers of accesskeys are ctrl+alt, which are not marked as
system keys.
In order to fully fix this issue, some changes in Chromium code is
also required.
* src/WebViewImpl.cpp:
(WebKit::WebViewImpl::keyEvent):
(WebKit::WebViewImpl::charEvent):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51832 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebKit/chromium/ChangeLog b/WebKit/chromium/ChangeLog
index e03947d..4d78607 100644
--- a/WebKit/chromium/ChangeLog
+++ b/WebKit/chromium/ChangeLog
@@ -1,3 +1,21 @@
+2009-12-07 Zhe Su <suzhe at chromium.org>
+
+ Reviewed by Darin Fisher.
+
+ [Chromium] accesskey is not supported on Chromium Mac.
+ https://bugs.webkit.org/show_bug.cgi?id=32213
+
+ This change fixes (partially) the accesskey issue by decoupling the
+ code for handling accesskeys and system keys. Because on Mac,
+ the modifiers of accesskeys are ctrl+alt, which are not marked as
+ system keys.
+ In order to fully fix this issue, some changes in Chromium code is
+ also required.
+
+ * src/WebViewImpl.cpp:
+ (WebKit::WebViewImpl::keyEvent):
+ (WebKit::WebViewImpl::charEvent):
+
2009-12-07 Evan Martin <evan at chromium.org>
Reviewed by Eric Seidel.
diff --git a/WebKit/chromium/src/WebViewImpl.cpp b/WebKit/chromium/src/WebViewImpl.cpp
index dc87101..1612b6a 100644
--- a/WebKit/chromium/src/WebViewImpl.cpp
+++ b/WebKit/chromium/src/WebViewImpl.cpp
@@ -464,7 +464,7 @@ bool WebViewImpl::keyEvent(const WebKeyboardEvent& event)
PlatformKeyboardEventBuilder evt(event);
if (handler->keyEvent(evt)) {
- if (WebInputEvent::RawKeyDown == event.type && !evt.isSystemKey())
+ if (WebInputEvent::RawKeyDown == event.type)
m_suppressNextKeypressEvent = true;
return true;
}
@@ -529,31 +529,33 @@ bool WebViewImpl::charEvent(const WebKeyboardEvent& event)
// handled by Webkit. A keyDown event is typically associated with a
// keyPress(char) event and a keyUp event. We reset this flag here as it
// only applies to the current keyPress event.
- if (m_suppressNextKeypressEvent) {
- m_suppressNextKeypressEvent = false;
- return true;
- }
+ bool suppress = m_suppressNextKeypressEvent;
+ m_suppressNextKeypressEvent = false;
Frame* frame = focusedWebCoreFrame();
if (!frame)
- return false;
+ return suppress;
EventHandler* handler = frame->eventHandler();
if (!handler)
- return keyEventDefault(event);
+ return suppress || keyEventDefault(event);
PlatformKeyboardEventBuilder evt(event);
if (!evt.isCharacterKey())
return true;
+ // Accesskeys are triggered by char events and can't be suppressed.
+ if (handler->handleAccessKey(evt))
+ return true;
+
// Safari 3.1 does not pass off windows system key messages (WM_SYSCHAR) to
// the eventHandler::keyEvent. We mimic this behavior on all platforms since
// for now we are converting other platform's key events to windows key
// events.
if (evt.isSystemKey())
- return handler->handleAccessKey(evt);
+ return false;
- if (!handler->keyEvent(evt))
+ if (!suppress && !handler->keyEvent(evt))
return keyEventDefault(event);
return true;
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list