[webkit-changes] cvs commit: WebCore/kwq KWQButton.mm
KWQComboBox.mm KWQListBox.mm KWQSlider.mm KWQTextArea.mm
KWQTextField.mm WebCoreBridge.mm
Timothy
thatcher at opensource.apple.com
Thu Dec 1 15:55:45 PST 2005
thatcher 05/12/01 15:55:45
Modified: . Tag: Safari-1-3-branch ChangeLog
kwq Tag: Safari-1-3-branch KWQButton.mm KWQComboBox.mm
KWQListBox.mm KWQSlider.mm KWQTextArea.mm
KWQTextField.mm WebCoreBridge.mm
Log:
Merged fix from TOT to Safari-1-3-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/KWQButton.mm:
(-[KWQButton becomeFirstResponder]): Added nil check.
(-[KWQButton resignFirstResponder]): Added nil check.
* kwq/KWQSlider.mm:
(-[KWQSlider becomeFirstResponder]): Added nil check.
(-[KWQSlider resignFirstResponder]): Added nil check.
* 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.335.2.41 +37 -0 WebCore/ChangeLog
Index: ChangeLog
===================================================================
RCS file: /cvs/root/WebCore/ChangeLog,v
retrieving revision 1.335.2.40
retrieving revision 1.335.2.41
diff -u -r1.335.2.40 -r1.335.2.41
--- ChangeLog 1 Dec 2005 23:16:32 -0000 1.335.2.40
+++ ChangeLog 1 Dec 2005 23:55:31 -0000 1.335.2.41
@@ -2,6 +2,43 @@
Merged fix from TOT to Safari-1-3-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/KWQButton.mm:
+ (-[KWQButton becomeFirstResponder]): Added nil check.
+ (-[KWQButton resignFirstResponder]): Added nil check.
+ * kwq/KWQSlider.mm:
+ (-[KWQSlider becomeFirstResponder]): Added nil check.
+ (-[KWQSlider resignFirstResponder]): Added nil check.
+ * 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-12-01 Timothy Hatcher <timothy at apple.com>
+
+ Merged fix from TOT to Safari-1-3-branch
+
2005-07-30 Darin Adler <darin at apple.com>
Reviewed by me, change by Dave Hyatt.
No revision
No revision
1.40.6.3 +4 -2 WebCore/kwq/Attic/KWQButton.mm
Index: KWQButton.mm
===================================================================
RCS file: /cvs/root/WebCore/kwq/Attic/KWQButton.mm,v
retrieving revision 1.40.6.2
retrieving revision 1.40.6.3
diff -u -r1.40.6.2 -r1.40.6.3
--- KWQButton.mm 14 Nov 2005 19:32:03 -0000 1.40.6.2
+++ KWQButton.mm 1 Dec 2005 23:55:38 -0000 1.40.6.3
@@ -132,7 +132,8 @@
}
if (button) {
QFocusEvent event(QEvent::FocusIn);
- const_cast<QObject *>(button->eventFilterObject())->eventFilter(button, &event);
+ if (button->eventFilterObject())
+ const_cast<QObject *>(button->eventFilterObject())->eventFilter(button, &event);
}
}
return become;
@@ -143,7 +144,8 @@
BOOL resign = [super resignFirstResponder];
if (resign && button) {
QFocusEvent event(QEvent::FocusOut);
- const_cast<QObject *>(button->eventFilterObject())->eventFilter(button, &event);
+ if (button->eventFilterObject())
+ const_cast<QObject *>(button->eventFilterObject())->eventFilter(button, &event);
}
return resign;
}
1.59.8.4 +4 -2 WebCore/kwq/KWQComboBox.mm
Index: KWQComboBox.mm
===================================================================
RCS file: /cvs/root/WebCore/kwq/KWQComboBox.mm,v
retrieving revision 1.59.8.3
retrieving revision 1.59.8.4
diff -u -r1.59.8.3 -r1.59.8.4
--- KWQComboBox.mm 17 Nov 2005 18:32:16 -0000 1.59.8.3
+++ KWQComboBox.mm 1 Dec 2005 23:55:38 -0000 1.59.8.4
@@ -478,7 +478,8 @@
layer->scrollRectToVisible(w->absoluteBoundingBoxRect());
}
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;
@@ -491,7 +492,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.6.4 +4 -2 WebCore/kwq/KWQListBox.mm
Index: KWQListBox.mm
===================================================================
RCS file: /cvs/root/WebCore/kwq/KWQListBox.mm,v
retrieving revision 1.51.6.3
retrieving revision 1.51.6.4
diff -u -r1.51.6.3 -r1.51.6.4
--- KWQListBox.mm 17 Nov 2005 18:32:16 -0000 1.51.6.3
+++ KWQListBox.mm 1 Dec 2005 23:55:39 -0000 1.51.6.4
@@ -477,7 +477,8 @@
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);
}
}
@@ -489,7 +490,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.8.6.2 +4 -2 WebCore/kwq/KWQSlider.mm
Index: KWQSlider.mm
===================================================================
RCS file: /cvs/root/WebCore/kwq/KWQSlider.mm,v
retrieving revision 1.8.6.1
retrieving revision 1.8.6.2
diff -u -r1.8.6.1 -r1.8.6.2
--- KWQSlider.mm 12 Nov 2005 01:57:44 -0000 1.8.6.1
+++ KWQSlider.mm 1 Dec 2005 23:55:39 -0000 1.8.6.2
@@ -110,7 +110,8 @@
if (slider) {
QFocusEvent event(QEvent::FocusIn);
- const_cast<QObject *>(slider->eventFilterObject())->eventFilter(slider, &event);
+ if (slider->eventFilterObject())
+ const_cast<QObject *>(slider->eventFilterObject())->eventFilter(slider, &event);
}
}
return become;
@@ -121,7 +122,8 @@
BOOL resign = [super resignFirstResponder];
if (resign && slider) {
QFocusEvent event(QEvent::FocusOut);
- const_cast<QObject *>(slider->eventFilterObject())->eventFilter(slider, &event);
+ if (slider->eventFilterObject())
+ const_cast<QObject *>(slider->eventFilterObject())->eventFilter(slider, &event);
}
return resign;
}
1.72.6.6 +4 -2 WebCore/kwq/KWQTextArea.mm
Index: KWQTextArea.mm
===================================================================
RCS file: /cvs/root/WebCore/kwq/KWQTextArea.mm,v
retrieving revision 1.72.6.5
retrieving revision 1.72.6.6
diff -u -r1.72.6.5 -r1.72.6.6
--- KWQTextArea.mm 12 Nov 2005 01:57:45 -0000 1.72.6.5
+++ KWQTextArea.mm 1 Dec 2005 23:55:39 -0000 1.72.6.6
@@ -756,7 +756,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);
}
}
@@ -772,7 +773,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.6.3 +4 -2 WebCore/kwq/KWQTextField.mm
Index: KWQTextField.mm
===================================================================
RCS file: /cvs/root/WebCore/kwq/KWQTextField.mm,v
retrieving revision 1.77.6.2
retrieving revision 1.77.6.3
diff -u -r1.77.6.2 -r1.77.6.3
--- KWQTextField.mm 12 Nov 2005 01:57:45 -0000 1.77.6.2
+++ KWQTextField.mm 1 Dec 2005 23:55:40 -0000 1.77.6.3
@@ -423,7 +423,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
@@ -442,7 +443,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.383.6.7 +1 -1 WebCore/kwq/WebCoreBridge.mm
Index: WebCoreBridge.mm
===================================================================
RCS file: /cvs/root/WebCore/kwq/WebCoreBridge.mm,v
retrieving revision 1.383.6.6
retrieving revision 1.383.6.7
diff -u -r1.383.6.6 -r1.383.6.7
--- WebCoreBridge.mm 28 Nov 2005 18:49:32 -0000 1.383.6.6
+++ WebCoreBridge.mm 1 Dec 2005 23:55:40 -0000 1.383.6.7
@@ -891,7 +891,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