[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:20:25 UTC 2009
The following commit has been merged in the debian/unstable branch:
commit aa81b2bb2b4fed0d663e90cb6477fbce35aae2e6
Author: mjs <mjs at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Tue Jan 21 02:33:35 2003 +0000
WebCore:
Reviewed by Trey.
- fixed 3132120 - onchange handler not firing on mac.com webmail
* khtml/rendering/render_form.h:
* khtml/rendering/render_replaced.cpp:
(RenderWidget::handleFocusOut): Moved empty virtual method here from render_form.
(RenderWidget::eventFilter): Uncomment call to handleFocusOut - we
need it to send onChange properly.
* khtml/rendering/render_replaced.h:
* kwq/KWQObject.h: Add empty eventFilter virtual method.
* kwq/KWQComboBox.h: Remove no longer needed empty eventFilter.
* kwq/KWQEvent.h: Implement a bit more of QFocusEvent.
* kwq/KWQTextArea.mm:
(-[KWQTextArea _createTextView]): Tell the text view its widget.
(-[KWQTextAreaTextView setWidget:]): New method to set widget.
(-[KWQTextAreaTextView becomeFirstResponder]): In addition to the usual stuff,
call the widget's event filter with a focus in event.
(-[KWQTextAreaTextView resignFirstResponder]): In addition to the usual stuff,
call the widget's event filter with a focus out event.
* kwq/KWQTextField.mm:
(-[KWQTextField becomeFirstResponder]): Cleaned up a bit.
(-[KWQTextField fieldWillBecomeFirstResponder]): Call the widget's event filter with a focus in event.
(-[KWQTextField fieldWillResignFirstResponder]): Call the widget's event filter with a focus out event.
* kwq/KWQView.mm:
WebKit:
Reviewed by Trey.
- fixed 3132120 - onchange handler not firing on mac.com webmail
* WebView.subproj/WebHTMLViewPrivate.m:
(-[WebNSTextView resignFirstResponder]): If we really resign first responder, and
our delegate responds to filedWillBecomeFirstResponder, then call that method.
(-[WebNSTextView becomeFirstResponder]): If we really become first responder, and
our delegate responds to filedWillBecomeFirstResponder, then call that method.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3361 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog-2003-10-25 b/WebCore/ChangeLog-2003-10-25
index eedd7f0..7899cd0 100644
--- a/WebCore/ChangeLog-2003-10-25
+++ b/WebCore/ChangeLog-2003-10-25
@@ -1,3 +1,31 @@
+2003-01-20 Maciej Stachowiak <mjs at apple.com>
+
+ Reviewed by Trey.
+
+ - fixed 3132120 - onchange handler not firing on mac.com webmail
+
+ * khtml/rendering/render_form.h:
+ * khtml/rendering/render_replaced.cpp:
+ (RenderWidget::handleFocusOut): Moved empty virtual method here from render_form.
+ (RenderWidget::eventFilter): Uncomment call to handleFocusOut - we
+ need it to send onChange properly.
+ * khtml/rendering/render_replaced.h:
+ * kwq/KWQObject.h: Add empty eventFilter virtual method.
+ * kwq/KWQComboBox.h: Remove no longer needed empty eventFilter.
+ * kwq/KWQEvent.h: Implement a bit more of QFocusEvent.
+ * kwq/KWQTextArea.mm:
+ (-[KWQTextArea _createTextView]): Tell the text view its widget.
+ (-[KWQTextAreaTextView setWidget:]): New method to set widget.
+ (-[KWQTextAreaTextView becomeFirstResponder]): In addition to the usual stuff,
+ call the widget's event filter with a focus in event.
+ (-[KWQTextAreaTextView resignFirstResponder]): In addition to the usual stuff,
+ call the widget's event filter with a focus out event.
+ * kwq/KWQTextField.mm:
+ (-[KWQTextField becomeFirstResponder]): Cleaned up a bit.
+ (-[KWQTextField fieldWillBecomeFirstResponder]): Call the widget's event filter with a focus in event.
+ (-[KWQTextField fieldWillResignFirstResponder]): Call the widget's event filter with a focus out event.
+ * kwq/KWQView.mm:
+
2003-01-20 David Hyatt <hyatt at apple.com>
Fix for 3147213. <nobr> is treated like other inlines now,
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index eedd7f0..7899cd0 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,3 +1,31 @@
+2003-01-20 Maciej Stachowiak <mjs at apple.com>
+
+ Reviewed by Trey.
+
+ - fixed 3132120 - onchange handler not firing on mac.com webmail
+
+ * khtml/rendering/render_form.h:
+ * khtml/rendering/render_replaced.cpp:
+ (RenderWidget::handleFocusOut): Moved empty virtual method here from render_form.
+ (RenderWidget::eventFilter): Uncomment call to handleFocusOut - we
+ need it to send onChange properly.
+ * khtml/rendering/render_replaced.h:
+ * kwq/KWQObject.h: Add empty eventFilter virtual method.
+ * kwq/KWQComboBox.h: Remove no longer needed empty eventFilter.
+ * kwq/KWQEvent.h: Implement a bit more of QFocusEvent.
+ * kwq/KWQTextArea.mm:
+ (-[KWQTextArea _createTextView]): Tell the text view its widget.
+ (-[KWQTextAreaTextView setWidget:]): New method to set widget.
+ (-[KWQTextAreaTextView becomeFirstResponder]): In addition to the usual stuff,
+ call the widget's event filter with a focus in event.
+ (-[KWQTextAreaTextView resignFirstResponder]): In addition to the usual stuff,
+ call the widget's event filter with a focus out event.
+ * kwq/KWQTextField.mm:
+ (-[KWQTextField becomeFirstResponder]): Cleaned up a bit.
+ (-[KWQTextField fieldWillBecomeFirstResponder]): Call the widget's event filter with a focus in event.
+ (-[KWQTextField fieldWillResignFirstResponder]): Call the widget's event filter with a focus out event.
+ * kwq/KWQView.mm:
+
2003-01-20 David Hyatt <hyatt at apple.com>
Fix for 3147213. <nobr> is treated like other inlines now,
diff --git a/WebCore/WebCore.pbproj/project.pbxproj b/WebCore/WebCore.pbproj/project.pbxproj
index 6149695..ea6a62e 100644
--- a/WebCore/WebCore.pbproj/project.pbxproj
+++ b/WebCore/WebCore.pbproj/project.pbxproj
@@ -175,7 +175,6 @@
</dict>
</plist>
";
- shouldUseHeadermap = 0;
};
0867D69DFE84028FC02AAC07 = {
buildActionMask = 2147483647;
@@ -484,6 +483,7 @@
931BFCD403D4AEE5008635CE,
931BFCD803D4AEFD008635CE,
93955A4303D72932008635CE,
+ 6504A7BF03DCE19800000124,
);
isa = PBXHeadersBuildPhase;
runOnlyForDeploymentPostprocessing = 0;
@@ -876,6 +876,21 @@
//652
//653
//654
+ 6504A7BE03DCE19800000124 = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ path = WebCoreFirstResponderChanges.h;
+ refType = 4;
+ };
+ 6504A7BF03DCE19800000124 = {
+ fileRef = 6504A7BE03DCE19800000124;
+ isa = PBXBuildFile;
+ settings = {
+ ATTRIBUTES = (
+ Private,
+ );
+ };
+ };
6573C63B03A0BE5700FCA39F = {
buildActionMask = 8;
files = (
@@ -6283,6 +6298,7 @@
F58785E902DE378A01EA4122 = {
children = (
F587854702DE375901EA4122,
+ 6504A7BE03DCE19800000124,
F587854802DE375901EA4122,
F5B2A4FC02E2220F018635CB,
F5B2A4FD02E2220F018635CB,
diff --git a/WebCore/khtml/rendering/render_form.h b/WebCore/khtml/rendering/render_form.h
index ec0a48b..8728883 100644
--- a/WebCore/khtml/rendering/render_form.h
+++ b/WebCore/khtml/rendering/render_form.h
@@ -100,8 +100,6 @@ protected:
virtual bool isRenderButton() const { return false; }
virtual bool isEditable() const { return false; }
- virtual void handleFocusOut() {};
-
QPoint m_mousePos;
int m_state;
int m_button;
diff --git a/WebCore/khtml/rendering/render_replaced.cpp b/WebCore/khtml/rendering/render_replaced.cpp
index 85c9f4d..3a07307 100644
--- a/WebCore/khtml/rendering/render_replaced.cpp
+++ b/WebCore/khtml/rendering/render_replaced.cpp
@@ -291,6 +291,10 @@ void RenderWidget::paintObject(QPainter* /*p*/, int, int, int, int, int _tx, int
#endif
}
+void RenderWidget::handleFocusOut()
+{
+}
+
bool RenderWidget::eventFilter(QObject* /*o*/, QEvent* e)
{
if ( !element() ) return true;
@@ -315,7 +319,7 @@ bool RenderWidget::eventFilter(QObject* /*o*/, QEvent* e)
// KHTMLPartBrowserExtension *ext = static_cast<KHTMLPartBrowserExtension *>( element()->view->part()->browserExtension() );
// if ( ext ) ext->editableWidgetBlurred( m_widget );
// }
-// handleFocusOut();
+ handleFocusOut();
}
break;
case QEvent::FocusIn:
diff --git a/WebCore/khtml/rendering/render_replaced.h b/WebCore/khtml/rendering/render_replaced.h
index 51c85ed..1c876df 100644
--- a/WebCore/khtml/rendering/render_replaced.h
+++ b/WebCore/khtml/rendering/render_replaced.h
@@ -92,6 +92,7 @@ protected:
bool eventFilter(QObject* /*o*/, QEvent* e);
void setQWidget(QWidget *widget);
void resizeWidget( QWidget *widget, int w, int h );
+ virtual void handleFocusOut();
QWidget *m_widget;
KHTMLView* m_view;
diff --git a/WebCore/kwq/KWQComboBox.h b/WebCore/kwq/KWQComboBox.h
index 03d3ae4..3dc21f6 100644
--- a/WebCore/kwq/KWQComboBox.h
+++ b/WebCore/kwq/KWQComboBox.h
@@ -54,8 +54,6 @@ public:
void setFrameGeometry(const QRect &);
int baselinePosition() const;
- bool eventFilter(QObject *object, QEvent *event) { return false; }
-
void activated() { _activated.call(currentItem()); }
private:
diff --git a/WebCore/kwq/KWQEvent.h b/WebCore/kwq/KWQEvent.h
index 60d82d9..3a8c7d8 100644
--- a/WebCore/kwq/KWQEvent.h
+++ b/WebCore/kwq/KWQEvent.h
@@ -119,10 +119,11 @@ public:
bool _isAccepted;
};
-class QFocusEvent {
+class QFocusEvent : public QEvent {
public:
enum Reason { Popup, Other };
static Reason reason() { return Other; }
+ QFocusEvent (Type type) : QEvent (type) {}
};
class QHideEvent;
diff --git a/WebCore/kwq/KWQObject.h b/WebCore/kwq/KWQObject.h
index ff4874d..0963207 100644
--- a/WebCore/kwq/KWQObject.h
+++ b/WebCore/kwq/KWQObject.h
@@ -88,6 +88,8 @@ public:
void removeEventFilter(const QObject *) { _eventFilterObject = 0; }
const QObject *eventFilterObject() const { return _eventFilterObject; }
+ virtual bool eventFilter(QObject *object, QEvent *event) { return false; }
+
void blockSignals(bool b) { _signalsBlocked = b; }
virtual bool event(QEvent *);
diff --git a/WebCore/kwq/KWQTextArea.mm b/WebCore/kwq/KWQTextArea.mm
index 7679516..d56db96 100644
--- a/WebCore/kwq/KWQTextArea.mm
+++ b/WebCore/kwq/KWQTextArea.mm
@@ -55,7 +55,9 @@
@interface KWQTextAreaTextView : NSTextView
{
+ QTextEdit *widget;
}
+- (void)setWidget:(QTextEdit *)widget;
@end
@implementation KWQTextArea
@@ -81,7 +83,8 @@ const float LargeNumberForText = 1.0e7;
textView = [[KWQTextAreaTextView alloc] initWithFrame:textFrame];
[[textView textContainer] setWidthTracksTextView:YES];
[textView setRichText:NO];
-
+ [textView setWidget:widget];
+
// Setup attributes for default cases WRAP=SOFT|VIRTUAL and WRAP=HARD|PHYSICAL.
// If WRAP=OFF we reset many of these attributes.
[style setLineBreakMode:NSLineBreakByWordWrapping];
@@ -473,6 +476,11 @@ static NSRange RangeOfParagraph(NSString *text, int paragraph)
@implementation KWQTextAreaTextView
+- (void)setWidget:(QTextEdit *)w
+{
+ widget = w;
+}
+
- (void)insertTab:(id)sender
{
NSView *view = [[self delegate] nextValidKeyView];
@@ -489,19 +497,32 @@ static NSRange RangeOfParagraph(NSString *text, int paragraph)
}
}
+
- (BOOL)becomeFirstResponder
{
- [super becomeFirstResponder];
- [self selectAll:nil];
- [self _KWQ_setKeyboardFocusRingNeedsDisplay];
- return YES;
+ BOOL become = [super becomeFirstResponder];
+
+ if (become) {
+ [self selectAll:nil];
+ [self _KWQ_setKeyboardFocusRingNeedsDisplay];
+ QFocusEvent event(QEvent::FocusIn);
+ (const_cast<QObject *>(widget->eventFilterObject()))->eventFilter(widget, &event);
+ }
+
+ return become;
}
- (BOOL)resignFirstResponder
{
- [super resignFirstResponder];
- [self _KWQ_setKeyboardFocusRingNeedsDisplay];
- return YES;
+ BOOL resign = [super resignFirstResponder];
+
+ if (resign) {
+ [self _KWQ_setKeyboardFocusRingNeedsDisplay];
+ QFocusEvent event(QEvent::FocusOut);
+ (const_cast<QObject *>(widget->eventFilterObject()))->eventFilter(widget, &event);
+ }
+
+ return resign;
}
- (BOOL)shouldDrawInsertionPoint
diff --git a/WebCore/kwq/KWQTextField.mm b/WebCore/kwq/KWQTextField.mm
index 0e5764d..6566bd8 100644
--- a/WebCore/kwq/KWQTextField.mm
+++ b/WebCore/kwq/KWQTextField.mm
@@ -28,6 +28,7 @@
#import "KWQLineEdit.h"
#import "KWQKHTMLPart.h"
#import "KWQNSViewExtras.h"
+#import "WebCoreFirstResponderChanges.h"
// KWQTextFieldFormatter enforces a maximum length.
@@ -243,9 +244,26 @@
- (BOOL)becomeFirstResponder
{
- KWQKHTMLPart::setDocumentFocus(widget);
- [self _KWQ_scrollFrameToVisible];
- return [super becomeFirstResponder];
+ BOOL become = [super becomeFirstResponder];
+
+ if (become) {
+ KWQKHTMLPart::setDocumentFocus(widget);
+ [self _KWQ_scrollFrameToVisible];
+ }
+
+ return become;
+}
+
+- (void)fieldWillBecomeFirstResponder
+{
+ QFocusEvent event(QEvent::FocusIn);
+ (const_cast<QObject *>(widget->eventFilterObject()))->eventFilter(widget, &event);
+}
+
+- (void)fieldWillResignFirstResponder
+{
+ QFocusEvent event(QEvent::FocusOut);
+ (const_cast<QObject *>(widget->eventFilterObject()))->eventFilter(widget, &event);
}
- (void)display
diff --git a/WebCore/kwq/WebCoreHistory.h b/WebCore/kwq/WebCoreFirstResponderChanges.h
similarity index 79%
copy from WebCore/kwq/WebCoreHistory.h
copy to WebCore/kwq/WebCoreFirstResponderChanges.h
index d181e6c..62c7862 100644
--- a/WebCore/kwq/WebCoreHistory.h
+++ b/WebCore/kwq/WebCoreFirstResponderChanges.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2002 Apple Computer, Inc. All rights reserved.
+ * Copyright (C) 2002, 2003 Apple Computer, Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -25,14 +25,10 @@
#import <Foundation/Foundation.h>
- at interface WebCoreHistory : NSObject
-{
-}
-
-+ (void)setSharedHistory: (WebCoreHistory *)h;
-+ (WebCoreHistory *)sharedHistory;
-
-- (void)addEntryForURLString: (NSString *)urlString;
-- (BOOL)containsEntryForURLString: (NSString *)urlString;
+// The WebCore client must arrange to call these methods when a text
+// field's field editor becomes or resigns first responder.
+ at interface NSObject (WebCoreFirstResponderChanges)
+- (void)fieldEditorWillBecomeFirstResponder;
+- (void)fieldEditorWillResignFirstResponder;
@end
diff --git a/WebKit/ChangeLog b/WebKit/ChangeLog
index ce39cd0..23bd78e 100644
--- a/WebKit/ChangeLog
+++ b/WebKit/ChangeLog
@@ -1,3 +1,15 @@
+2003-01-20 Maciej Stachowiak <mjs at apple.com>
+
+ Reviewed by Trey.
+
+ - fixed 3132120 - onchange handler not firing on mac.com webmail
+
+ * WebView.subproj/WebHTMLViewPrivate.m:
+ (-[WebNSTextView resignFirstResponder]): If we really resign first responder, and
+ our delegate responds to filedWillBecomeFirstResponder, then call that method.
+ (-[WebNSTextView becomeFirstResponder]): If we really become first responder, and
+ our delegate responds to filedWillBecomeFirstResponder, then call that method.
+
2003-01-20 Trey Matteson <trey at apple.com>
Nit fix to remove a dead "cursor" ivar found while grepping.
diff --git a/WebKit/WebView.subproj/WebHTMLViewPrivate.m b/WebKit/WebView.subproj/WebHTMLViewPrivate.m
index 9f1de24..ba43e04 100644
--- a/WebKit/WebView.subproj/WebHTMLViewPrivate.m
+++ b/WebKit/WebView.subproj/WebHTMLViewPrivate.m
@@ -11,6 +11,8 @@
#import <WebFoundation/WebAssertions.h>
#import <WebFoundation/WebNSURLExtras.h>
+#import <WebCore/WebCoreFirstResponderChanges.h>
+
#import <WebKit/WebBridge.h>
#import <WebKit/WebContextMenuDelegate.h>
#import <WebKit/WebController.h>
@@ -627,6 +629,40 @@ static BOOL inNSTextViewDrawRect;
inNSTextViewDrawRect = NO;
}
+- (BOOL)resignFirstResponder
+{
+ bool resign = [super resignFirstResponder];
+
+ if (![self _web_inHTMLView]) {
+ return resign;
+ }
+
+ NSView *possibleContainingField = [self delegate];
+
+ if (resign && [possibleContainingField respondsToSelector:@selector(fieldEditorWillResignFirstResponder)]) {
+ [possibleContainingField fieldEditorWillResignFirstResponder];
+ }
+
+ return resign;
+}
+
+- (BOOL)becomeFirstResponder
+{
+ bool become = [super becomeFirstResponder];
+
+ if (![self _web_inHTMLView]) {
+ return become;
+ }
+
+ NSView *possibleContainingField = [self delegate];
+
+ if (become && [possibleContainingField respondsToSelector:@selector(fieldEditorWillBecomeFirstResponder)]) {
+ [possibleContainingField fieldEditorWillBecomeFirstResponder];
+ }
+
+ return become;
+}
+
@end
@implementation WebNSView
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list