[webkit-changes] cvs commit: WebCore/kwq KWQComboBox.mm
KWQListBox.mm KWQTextArea.mm KWQTextField.mm WebCoreBridge.mm
Timothy
thatcher at opensource.apple.com
Thu Nov 10 10:22:38 PST 2005
thatcher 05/11/10 10:22:38
Modified: . Tag: Safari-2-0-branch ChangeLog
kwq Tag: Safari-2-0-branch KWQComboBox.mm KWQListBox.mm
KWQTextArea.mm KWQTextField.mm WebCoreBridge.mm
Log:
Merged fix from TOT to Safari-2-0-branch
2005-10-28 Beth Dakin <bdakin at apple.com>
Reviewed by John
Fix for <rdar://problem/4098083> REGRESSION (125-312): crash
in [KWQTableView resignFirstResponder] selecting from JS menu
(car4you.at, etc.)
Since it is possible that a render widget's eventFilterObject
has been destroyed even though the render widget is still ref-ed,
we need to nil-check the eventFilterObject before we use it to get
the eventFilter.
* kwq/KWQComboBox.mm:
(-[KWQPopUpButton becomeFirstResponder]): Added nil check.
(-[KWQPopUpButton resignFirstResponder]): Added nil check.
* kwq/KWQListBox.mm:
(-[KWQTableView becomeFirstResponder]): Added nil check.
(-[KWQTableView resignFirstResponder]): Added nil check.
* kwq/KWQTextArea.mm:
(-[KWQTextAreaTextView becomeFirstResponder]): Added nil check.
(-[KWQTextAreaTextView resignFirstResponder]): Added nil check.
* kwq/KWQTextField.mm:
(-[KWQTextFieldController setHasFocus:]): Added nil check.
* kwq/WebCoreBridge.mm:
(-[WebCoreBridge elementForView:]): Added nil check.
Revision Changes Path
No revision
No revision
1.1.2.42 +31 -0 WebCore/ChangeLog
Index: ChangeLog
===================================================================
RCS file: /cvs/root/WebCore/ChangeLog,v
retrieving revision 1.1.2.41
retrieving revision 1.1.2.42
diff -u -r1.1.2.41 -r1.1.2.42
--- ChangeLog 9 Nov 2005 23:05:26 -0000 1.1.2.41
+++ ChangeLog 10 Nov 2005 18:22:26 -0000 1.1.2.42
@@ -1,3 +1,34 @@
+2005-11-10 Timothy Hatcher <timothy at apple.com>
+
+ Merged fix from TOT to Safari-2-0-branch
+
+ 2005-10-28 Beth Dakin <bdakin at apple.com>
+
+ Reviewed by John
+
+ Fix for <rdar://problem/4098083> REGRESSION (125-312): crash
+ in [KWQTableView resignFirstResponder] selecting from JS menu
+ (car4you.at, etc.)
+
+ Since it is possible that a render widget's eventFilterObject
+ has been destroyed even though the render widget is still ref-ed,
+ we need to nil-check the eventFilterObject before we use it to get
+ the eventFilter.
+
+ * kwq/KWQComboBox.mm:
+ (-[KWQPopUpButton becomeFirstResponder]): Added nil check.
+ (-[KWQPopUpButton resignFirstResponder]): Added nil check.
+ * kwq/KWQListBox.mm:
+ (-[KWQTableView becomeFirstResponder]): Added nil check.
+ (-[KWQTableView resignFirstResponder]): Added nil check.
+ * kwq/KWQTextArea.mm:
+ (-[KWQTextAreaTextView becomeFirstResponder]): Added nil check.
+ (-[KWQTextAreaTextView resignFirstResponder]): Added nil check.
+ * kwq/KWQTextField.mm:
+ (-[KWQTextFieldController setHasFocus:]): Added nil check.
+ * kwq/WebCoreBridge.mm:
+ (-[WebCoreBridge elementForView:]): Added nil check.
+
2005-11-09 Timothy Hatcher <timothy at apple.com>
Merged fix from TOT to Safari-2-0-branch
No revision
No revision
1.59.10.4 +4 -2 WebCore/kwq/KWQComboBox.mm
Index: KWQComboBox.mm
===================================================================
RCS file: /cvs/root/WebCore/kwq/KWQComboBox.mm,v
retrieving revision 1.59.10.3
retrieving revision 1.59.10.4
diff -u -r1.59.10.3 -r1.59.10.4
--- KWQComboBox.mm 2 Sep 2005 22:14:10 -0000 1.59.10.3
+++ KWQComboBox.mm 10 Nov 2005 18:22:33 -0000 1.59.10.4
@@ -489,7 +489,8 @@
[self _KWQ_scrollFrameToVisible];
}
QFocusEvent event(QEvent::FocusIn);
- const_cast<QObject *>(widget->eventFilterObject())->eventFilter(widget, &event);
+ if (widget->eventFilterObject())
+ const_cast<QObject *>(widget->eventFilterObject())->eventFilter(widget, &event);
}
}
return become;
@@ -502,7 +503,8 @@
QWidget *widget = [self widget];
if (widget) {
QFocusEvent event(QEvent::FocusOut);
- const_cast<QObject *>(widget->eventFilterObject())->eventFilter(widget, &event);
+ if (widget->eventFilterObject())
+ const_cast<QObject *>(widget->eventFilterObject())->eventFilter(widget, &event);
}
}
return resign;
1.51.8.5 +5 -3 WebCore/kwq/KWQListBox.mm
Index: KWQListBox.mm
===================================================================
RCS file: /cvs/root/WebCore/kwq/KWQListBox.mm,v
retrieving revision 1.51.8.4
retrieving revision 1.51.8.5
diff -u -r1.51.8.4 -r1.51.8.5
--- KWQListBox.mm 2 Sep 2005 22:14:10 -0000 1.51.8.4
+++ KWQListBox.mm 10 Nov 2005 18:22:34 -0000 1.51.8.5
@@ -509,11 +509,12 @@
if (_box && !KWQKHTMLPart::currentEventIsMouseDownInWidget(_box)) {
[self _KWQ_scrollFrameToVisible];
}
- [self _KWQ_setKeyboardFocusRingNeedsDisplay];
+ [self _KWQ_setKeyboardFocusRingNeedsDisplay];
if (_box) {
QFocusEvent event(QEvent::FocusIn);
- const_cast<QObject *>(_box->eventFilterObject())->eventFilter(_box, &event);
+ if (_box->eventFilterObject())
+ const_cast<QObject *>(_box->eventFilterObject())->eventFilter(_box, &event);
}
}
@@ -525,7 +526,8 @@
BOOL resign = [super resignFirstResponder];
if (resign && _box) {
QFocusEvent event(QEvent::FocusOut);
- const_cast<QObject *>(_box->eventFilterObject())->eventFilter(_box, &event);
+ if (_box->eventFilterObject())
+ const_cast<QObject *>(_box->eventFilterObject())->eventFilter(_box, &event);
}
return resign;
}
1.72.8.3 +4 -2 WebCore/kwq/KWQTextArea.mm
Index: KWQTextArea.mm
===================================================================
RCS file: /cvs/root/WebCore/kwq/KWQTextArea.mm,v
retrieving revision 1.72.8.2
retrieving revision 1.72.8.3
diff -u -r1.72.8.2 -r1.72.8.3
--- KWQTextArea.mm 22 Jul 2005 01:18:36 -0000 1.72.8.2
+++ KWQTextArea.mm 10 Nov 2005 18:22:34 -0000 1.72.8.3
@@ -639,7 +639,8 @@
if (widget) {
QFocusEvent event(QEvent::FocusIn);
- const_cast<QObject *>(widget->eventFilterObject())->eventFilter(widget, &event);
+ if (widget->eventFilterObject())
+ const_cast<QObject *>(widget->eventFilterObject())->eventFilter(widget, &event);
}
}
@@ -655,7 +656,8 @@
if (widget) {
QFocusEvent event(QEvent::FocusOut);
- const_cast<QObject *>(widget->eventFilterObject())->eventFilter(widget, &event);
+ if (widget->eventFilterObject())
+ const_cast<QObject *>(widget->eventFilterObject())->eventFilter(widget, &event);
}
}
1.77.8.1 +4 -2 WebCore/kwq/KWQTextField.mm
Index: KWQTextField.mm
===================================================================
RCS file: /cvs/root/WebCore/kwq/KWQTextField.mm,v
retrieving revision 1.77
retrieving revision 1.77.8.1
diff -u -r1.77 -r1.77.8.1
--- KWQTextField.mm 3 Mar 2005 00:58:35 -0000 1.77
+++ KWQTextField.mm 10 Nov 2005 18:22:34 -0000 1.77.8.1
@@ -390,7 +390,8 @@
if (widget) {
QFocusEvent event(QEvent::FocusIn);
- const_cast<QObject *>(widget->eventFilterObject())->eventFilter(widget, &event);
+ if (widget->eventFilterObject())
+ const_cast<QObject *>(widget->eventFilterObject())->eventFilter(widget, &event);
}
// Sending the onFocus event above, may have resulted in a blur() - if this
@@ -409,7 +410,8 @@
if (widget) {
QFocusEvent event(QEvent::FocusOut);
- const_cast<QObject *>(widget->eventFilterObject())->eventFilter(widget, &event);
+ if (widget->eventFilterObject())
+ const_cast<QObject *>(widget->eventFilterObject())->eventFilter(widget, &event);
}
}
}
1.382.2.10 +1 -1 WebCore/kwq/WebCoreBridge.mm
Index: WebCoreBridge.mm
===================================================================
RCS file: /cvs/root/WebCore/kwq/WebCoreBridge.mm,v
retrieving revision 1.382.2.9
retrieving revision 1.382.2.10
diff -u -r1.382.2.9 -r1.382.2.10
--- WebCoreBridge.mm 16 Sep 2005 19:28:09 -0000 1.382.2.9
+++ WebCoreBridge.mm 10 Nov 2005 18:22:35 -0000 1.382.2.10
@@ -897,7 +897,7 @@
if ([view conformsToProtocol:@protocol(KWQWidgetHolder)]) {
NSView <KWQWidgetHolder> *widgetHolder = view;
QWidget *widget = [widgetHolder widget];
- if (widget != nil) {
+ if (widget != nil && widget->eventFilterObject() != nil) {
NodeImpl *node = static_cast<const RenderWidget *>(widget->eventFilterObject())->element();
return [DOMElement _elementWithImpl:static_cast<ElementImpl *>(node)];
}
More information about the webkit-changes
mailing list