[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677
mjs
mjs at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 07:58:36 UTC 2009
The following commit has been merged in the debian/unstable branch:
commit 52c24507db6b8960a1106b43980b61d990cdb791
Author: mjs <mjs at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Tue Sep 30 21:58:07 2003 +0000
WebCore:
Reviewed by Ken.
- fixed 3375281 - Keyboard event handlers not fired if focus not in form field
- fixed 3242927 - KeyPressed Event in Javascript don't work
- fixed 3375353 - keyboard event.target not updated when blurring from form items
- fixed 3183754 - returning false from key press handlers does not prevent typing or form submission
* khtml/xml/dom_nodeimpl.cpp:
(NodeImpl::dispatchKeyEvent): Force false when defaultHandled instead of
based on a weird rule appropriate for KDE but not for us.
* kwq/KWQKHTMLPart.mm:
(KWQKHTMLPart::keyEvent): If there's no focus node, give the event
to the body element instead of giving up. Also, reverse
expectedsense of return value dispatchKeyEvent, since it returns
true if it *didn't* swallow the event. And finally, let the key press
event as well as the key down event for the initial NSKeyDown block
default handling.
* kwq/KWQListBox.mm:
(-[KWQTableView keyDown:]): Respect return value from interceptKeyEvent:
(-[KWQTableView keyUp:]): ditto
* kwq/KWQTextArea.mm:
(-[KWQTextAreaTextView keyDown:]): ditto
(-[KWQTextAreaTextView keyUp:]): ditto
* kwq/KWQTextField.mm:
(-[KWQTextField textView:shouldHandleEvent:]): ditto
WebKit:
Reviewed by Ken.
- fixed 3375281 - Keyboard event handlers not fired if focus not in form field
- fixed 3242927 - KeyPressed Event in Javascript don't work
- fixed 3375353 - keyboard event.target not updated when blurring from form items
- fixed 3183754 - returning false from key press handlers does not prevent typing or form submission
* WebView.subproj/WebHTMLView.m:
(-[WebHTMLView keyDown:]): Ask the bridge before passing the event along.
(-[WebHTMLView keyUp:]): Likewise.
* WebView.subproj/WebHTMLViewPrivate.h:
* WebView.subproj/WebHTMLViewPrivate.m: Remove dead code.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@5090 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog-2003-10-25 b/WebCore/ChangeLog-2003-10-25
index 350cf72..6597648 100644
--- a/WebCore/ChangeLog-2003-10-25
+++ b/WebCore/ChangeLog-2003-10-25
@@ -1,3 +1,31 @@
+2003-09-30 Maciej Stachowiak <mjs at apple.com>
+
+ Reviewed by Ken.
+
+ - fixed 3375281 - Keyboard event handlers not fired if focus not in form field
+ - fixed 3242927 - KeyPressed Event in Javascript don't work
+ - fixed 3375353 - keyboard event.target not updated when blurring from form items
+ - fixed 3183754 - returning false from key press handlers does not prevent typing or form submission
+
+ * khtml/xml/dom_nodeimpl.cpp:
+ (NodeImpl::dispatchKeyEvent): Force false when defaultHandled instead of
+ based on a weird rule appropriate for KDE but not for us.
+ * kwq/KWQKHTMLPart.mm:
+ (KWQKHTMLPart::keyEvent): If there's no focus node, give the event
+ to the body element instead of giving up. Also, reverse
+ expectedsense of return value dispatchKeyEvent, since it returns
+ true if it *didn't* swallow the event. And finally, let the key press
+ event as well as the key down event for the initial NSKeyDown block
+ default handling.
+ * kwq/KWQListBox.mm:
+ (-[KWQTableView keyDown:]): Respect return value from interceptKeyEvent:
+ (-[KWQTableView keyUp:]): ditto
+ * kwq/KWQTextArea.mm:
+ (-[KWQTextAreaTextView keyDown:]): ditto
+ (-[KWQTextAreaTextView keyUp:]): ditto
+ * kwq/KWQTextField.mm:
+ (-[KWQTextField textView:shouldHandleEvent:]): ditto
+
2003-09-30 David Hyatt <hyatt at apple.com>
Improvements to layout transitions and scrollbar appearance/disappearance.
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index 350cf72..6597648 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,3 +1,31 @@
+2003-09-30 Maciej Stachowiak <mjs at apple.com>
+
+ Reviewed by Ken.
+
+ - fixed 3375281 - Keyboard event handlers not fired if focus not in form field
+ - fixed 3242927 - KeyPressed Event in Javascript don't work
+ - fixed 3375353 - keyboard event.target not updated when blurring from form items
+ - fixed 3183754 - returning false from key press handlers does not prevent typing or form submission
+
+ * khtml/xml/dom_nodeimpl.cpp:
+ (NodeImpl::dispatchKeyEvent): Force false when defaultHandled instead of
+ based on a weird rule appropriate for KDE but not for us.
+ * kwq/KWQKHTMLPart.mm:
+ (KWQKHTMLPart::keyEvent): If there's no focus node, give the event
+ to the body element instead of giving up. Also, reverse
+ expectedsense of return value dispatchKeyEvent, since it returns
+ true if it *didn't* swallow the event. And finally, let the key press
+ event as well as the key down event for the initial NSKeyDown block
+ default handling.
+ * kwq/KWQListBox.mm:
+ (-[KWQTableView keyDown:]): Respect return value from interceptKeyEvent:
+ (-[KWQTableView keyUp:]): ditto
+ * kwq/KWQTextArea.mm:
+ (-[KWQTextAreaTextView keyDown:]): ditto
+ (-[KWQTextAreaTextView keyUp:]): ditto
+ * kwq/KWQTextField.mm:
+ (-[KWQTextField textView:shouldHandleEvent:]): ditto
+
2003-09-30 David Hyatt <hyatt at apple.com>
Improvements to layout transitions and scrollbar appearance/disappearance.
diff --git a/WebCore/khtml/xml/dom_nodeimpl.cpp b/WebCore/khtml/xml/dom_nodeimpl.cpp
index dc8dbd2..e395f20 100644
--- a/WebCore/khtml/xml/dom_nodeimpl.cpp
+++ b/WebCore/khtml/xml/dom_nodeimpl.cpp
@@ -740,10 +740,19 @@ bool NodeImpl::dispatchKeyEvent(QKeyEvent *key)
KeyEventImpl *keyEventImpl = new KeyEventImpl(key, getDocument()->defaultView());
keyEventImpl->ref();
bool r = dispatchEvent(keyEventImpl,exceptioncode,true);
+
+#if APPLE_CHANGES
+ // we want to return false if default is prevented (already taken care of)
+ // or if the element is default-handled by the DOM. Otherwise we let it just
+ // let it get handled by AppKit
+ if (keyEventImpl->defaultHandled())
+#else
// the default event handler should accept() the internal QKeyEvent
// to prevent the view from further evaluating it.
if (!keyEventImpl->defaultPrevented() && !keyEventImpl->qKeyEvent->isAccepted())
+#endif
r = false;
+
keyEventImpl->deref();
return r;
}
diff --git a/WebCore/kwq/KWQKHTMLPart.mm b/WebCore/kwq/KWQKHTMLPart.mm
index e7f8321..b7de64e 100644
--- a/WebCore/kwq/KWQKHTMLPart.mm
+++ b/WebCore/kwq/KWQKHTMLPart.mm
@@ -1300,6 +1300,9 @@ bool KWQKHTMLPart::keyEvent(NSEvent *event)
return false;
}
NodeImpl *node = doc->focusNode();
+ if (!node && docImpl()) {
+ node = docImpl()->body();
+ }
if (!node) {
return false;
}
@@ -1316,7 +1319,7 @@ bool KWQKHTMLPart::keyEvent(NSEvent *event)
stateForCurrentEvent(),
QString::fromNSString([event characters]),
[event isARepeat]);
- bool result = node->dispatchKeyEvent(&qEvent);
+ bool result = !node->dispatchKeyEvent(&qEvent);
// We want to send both a down and a press for the initial key event.
// This is a temporary hack; we need to do this a better way.
@@ -1327,7 +1330,9 @@ bool KWQKHTMLPart::keyEvent(NSEvent *event)
stateForCurrentEvent(),
QString::fromNSString([event characters]),
true);
- node->dispatchKeyEvent(&qEvent);
+ if (!node->dispatchKeyEvent(&qEvent)) {
+ result = true;
+ }
}
ASSERT(_currentEvent == event);
diff --git a/WebCore/kwq/KWQListBox.mm b/WebCore/kwq/KWQListBox.mm
index e88464f..f8bfd05 100644
--- a/WebCore/kwq/KWQListBox.mm
+++ b/WebCore/kwq/KWQListBox.mm
@@ -295,21 +295,17 @@ QSize QListBox::sizeForNumberOfLines(int lines) const
- (void)keyDown:(NSEvent *)event
{
WebCoreBridge *bridge = KWQKHTMLPart::bridgeForWidget(_box);
- [bridge interceptKeyEvent:event toView:self];
- // FIXME: In theory, if the bridge intercepted the event we should return not call super.
- // But the code in the Web Kit that this replaces did not do that, so lets not do it until
- // we can do more testing to see if it works well.
- [super keyDown:event];
+ if (![bridge interceptKeyEvent:event toView:self]) {
+ [super keyDown:event];
+ }
}
- (void)keyUp:(NSEvent *)event
{
WebCoreBridge *bridge = KWQKHTMLPart::bridgeForWidget(_box);
- [bridge interceptKeyEvent:event toView:self];
- // FIXME: In theory, if the bridge intercepted the event we should return not call super.
- // But the code in the Web Kit that this replaces did not do that, so lets not do it until
- // we can do more testing to see if it works well.
- [super keyUp:event];
+ if (![bridge interceptKeyEvent:event toView:self]) {
+ [super keyUp:event];
+ }
}
- (BOOL)becomeFirstResponder
diff --git a/WebCore/kwq/KWQTextArea.mm b/WebCore/kwq/KWQTextArea.mm
index 4c0175f..fa2e14b 100644
--- a/WebCore/kwq/KWQTextArea.mm
+++ b/WebCore/kwq/KWQTextArea.mm
@@ -635,21 +635,17 @@ static NSString *WebContinuousSpellCheckingEnabled = @"WebContinuousSpellCheckin
- (void)keyDown:(NSEvent *)event
{
WebCoreBridge *bridge = KWQKHTMLPart::bridgeForWidget(widget);
- [bridge interceptKeyEvent:event toView:self];
- // FIXME: In theory, if the bridge intercepted the event we should return not call super.
- // But the code in the Web Kit that this replaces did not do that, so lets not do it until
- // we can do more testing to see if it works well.
- [super keyDown:event];
+ if (![bridge interceptKeyEvent:event toView:self]) {
+ [super keyDown:event];
+ }
}
- (void)keyUp:(NSEvent *)event
{
WebCoreBridge *bridge = KWQKHTMLPart::bridgeForWidget(widget);
- [bridge interceptKeyEvent:event toView:self];
- // FIXME: In theory, if the bridge intercepted the event we should return not call super.
- // But the code in the Web Kit that this replaces did not do that, so lets not do it until
- // we can do more testing to see if it works well.
- [super keyUp:event];
+ if (![bridge interceptKeyEvent:event toView:self]) {
+ [super keyUp:event];
+ }
}
@end
diff --git a/WebCore/kwq/KWQTextField.mm b/WebCore/kwq/KWQTextField.mm
index 3fc1685..2a78b0d 100644
--- a/WebCore/kwq/KWQTextField.mm
+++ b/WebCore/kwq/KWQTextField.mm
@@ -465,9 +465,7 @@
if ([event type] == NSKeyDown || [event type] == NSKeyUp) {
WebCoreBridge *bridge = KWQKHTMLPart::bridgeForWidget(widget);
- [bridge interceptKeyEvent:event toView:view];
- // FIXME: In theory, if the bridge intercepted the event we should return NO.
- // But the code in the Web Kit that we moved in here did not do that.
+ return ![bridge interceptKeyEvent:event toView:view];
}
return YES;
}
diff --git a/WebKit/ChangeLog b/WebKit/ChangeLog
index 6f3ad6e..eb5dc88 100644
--- a/WebKit/ChangeLog
+++ b/WebKit/ChangeLog
@@ -1,3 +1,18 @@
+2003-09-30 Maciej Stachowiak <mjs at apple.com>
+
+ Reviewed by Ken.
+
+ - fixed 3375281 - Keyboard event handlers not fired if focus not in form field
+ - fixed 3242927 - KeyPressed Event in Javascript don't work
+ - fixed 3375353 - keyboard event.target not updated when blurring from form items
+ - fixed 3183754 - returning false from key press handlers does not prevent typing or form submission
+
+ * WebView.subproj/WebHTMLView.m:
+ (-[WebHTMLView keyDown:]): Ask the bridge before passing the event along.
+ (-[WebHTMLView keyUp:]): Likewise.
+ * WebView.subproj/WebHTMLViewPrivate.h:
+ * WebView.subproj/WebHTMLViewPrivate.m: Remove dead code.
+
2003-09-30 Richard Williamson <rjw at apple.com>
Fixed 3422138. We weren't sending a didChange call for isLoading until the load was complete! Also [WebView isLoading] wasn't accounting for provisional datasources.
diff --git a/WebKit/WebView.subproj/WebHTMLView.m b/WebKit/WebView.subproj/WebHTMLView.m
index 8c7fff8..cb2fa14 100644
--- a/WebKit/WebView.subproj/WebHTMLView.m
+++ b/WebKit/WebView.subproj/WebHTMLView.m
@@ -845,6 +845,20 @@
[[self window] setAutodisplay:YES];
}
+- (void)keyDown:(NSEvent *)event
+{
+ if (![[self _bridge] interceptKeyEvent:event toView:self]) {
+ [super keyDown:event];
+ }
+}
+
+- (void)keyUp:(NSEvent *)event
+{
+ if (![[self _bridge] interceptKeyEvent:event toView:self]) {
+ [super keyUp:event];
+ }
+}
+
@end
@implementation NSArray (WebHTMLView)
diff --git a/WebKit/WebView.subproj/WebHTMLViewPrivate.h b/WebKit/WebView.subproj/WebHTMLViewPrivate.h
index 58f076c..e336622 100644
--- a/WebKit/WebView.subproj/WebHTMLViewPrivate.h
+++ b/WebKit/WebView.subproj/WebHTMLViewPrivate.h
@@ -65,7 +65,6 @@
- (BOOL)_insideAnotherHTMLView;
- (void)_clearLastHitViewIfSelf;
- (void)_updateMouseoverWithEvent:(NSEvent *)event;
-- (BOOL)_interceptKeyEvent:(NSEvent *)event toView:(NSView *)view;
+ (NSArray *)_pasteboardTypes;
- (void)_writeSelectionToPasteboard:(NSPasteboard *)pasteboard;
diff --git a/WebKit/WebView.subproj/WebHTMLViewPrivate.m b/WebKit/WebView.subproj/WebHTMLViewPrivate.m
index 8360742..4d493c7 100644
--- a/WebKit/WebView.subproj/WebHTMLViewPrivate.m
+++ b/WebKit/WebView.subproj/WebHTMLViewPrivate.m
@@ -475,12 +475,6 @@ static WebHTMLView *lastHitView = nil;
[self _setToolTip:[element objectForKey:WebCoreElementTitleKey]];
}
-- (BOOL)_interceptKeyEvent:(NSEvent *)event toView:(NSView *)view
-{
- return [[self _bridge] interceptKeyEvent:event toView:view];
-}
-
-
+ (NSArray *)_pasteboardTypes
{
return [NSArray arrayWithObjects:
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list