[webkit-changes] cvs commit: WebCore/kwq WebCoreBridge.mm
Vicki
vicki at opensource.apple.com
Sun Nov 13 22:46:46 PST 2005
vicki 05/11/13 22:46:46
Modified: . ChangeLog
kwq WebCoreBridge.mm
Log:
Reviewed by Adele.
- fix <rdar://problem/4341389> crash in elementAtPoint code quitting Safari, and make this code slightly more readable
* kwq/WebCoreBridge.mm:
(-[WebCoreBridge elementAtPoint:]): add a nil check
Revision Changes Path
1.362 +9 -0 WebCore/ChangeLog
Index: ChangeLog
===================================================================
RCS file: /cvs/root/WebCore/ChangeLog,v
retrieving revision 1.361
retrieving revision 1.362
diff -u -r1.361 -r1.362
--- ChangeLog 14 Nov 2005 03:49:50 -0000 1.361
+++ ChangeLog 14 Nov 2005 06:46:41 -0000 1.362
@@ -1,5 +1,14 @@
2005-11-13 Vicki Murley <vicki at apple.com>
+ Reviewed by Adele.
+
+ - fix <rdar://problem/4341389> crash in elementAtPoint code quitting Safari, and make this code slightly more readable
+
+ * kwq/WebCoreBridge.mm:
+ (-[WebCoreBridge elementAtPoint:]): add a nil check
+
+2005-11-13 Vicki Murley <vicki at apple.com>
+
Reviewed by Maciej.
- fix <rdar://problem/4316201> REGRESSION: cursor and text in status bar is not updated when mousing over links in a frame (5509)
1.428 +20 -17 WebCore/kwq/WebCoreBridge.mm
Index: WebCoreBridge.mm
===================================================================
RCS file: /cvs/root/WebCore/kwq/WebCoreBridge.mm,v
retrieving revision 1.427
retrieving revision 1.428
diff -u -r1.427 -r1.428
--- WebCoreBridge.mm 14 Nov 2005 03:49:54 -0000 1.427
+++ WebCoreBridge.mm 14 Nov 2005 06:46:45 -0000 1.428
@@ -1030,25 +1030,28 @@
RenderObject::NodeInfo nodeInfo(true, true);
renderer->layer()->hitTest(nodeInfo, (int)point.x, (int)point.y);
- NodeImpl *n = nodeInfo.innerNode();
- QWidget *widget = static_cast<RenderWidget *>(n->renderer())->widget();
+ NodeImpl *n;
+ QWidget *widget;
- while (n && n->renderer() && n->renderer()->isWidget() && widget && widget->inherits("KHTMLView")) {
- KHTMLPart *kpart = static_cast<DOM::HTMLFrameElementImpl *>(n)->contentPart();
- if (kpart && static_cast<KWQKHTMLPart *>(kpart)->renderer()) {
- int _x, _y;
- n->renderer()->absolutePosition(_x, _y, true);
- _x = (int)point.x - _x;
- _y = (int)point.y - _y;
- RenderObject::NodeInfo widgetNodeInfo(true, true);
- static_cast<KWQKHTMLPart *>(kpart)->renderer()->layer()->hitTest(widgetNodeInfo, _x, _y);
- nodeInfo = widgetNodeInfo;
- n = nodeInfo.innerNode();
- if (n && n->renderer())
- widget = static_cast<RenderWidget *>(n->renderer())->widget();
+ do {
+ n = nodeInfo.innerNode();
+ if (n && n->renderer() && n->renderer()->isWidget()) {
+ widget = static_cast<RenderWidget *>(n->renderer())->widget();
+ if (widget && widget->inherits("KHTMLView")) {
+ KHTMLPart *kpart = static_cast<DOM::HTMLFrameElementImpl *>(n)->contentPart();
+ if (kpart && static_cast<KWQKHTMLPart *>(kpart)->renderer()) {
+ int _x, _y;
+ n->renderer()->absolutePosition(_x, _y, true);
+ _x = (int)point.x - _x;
+ _y = (int)point.y - _y;
+ RenderObject::NodeInfo widgetNodeInfo(true, true);
+ static_cast<KWQKHTMLPart *>(kpart)->renderer()->layer()->hitTest(widgetNodeInfo, _x, _y);
+ nodeInfo = widgetNodeInfo;
+ }
+ }
}
- }
-
+ } while (n && n->renderer() && n->renderer()->isWidget() && widget && widget->inherits("KHTMLView"));
+
NSMutableDictionary *element = [NSMutableDictionary dictionary];
[element setObject:[NSNumber numberWithBool:_part->isPointInsideSelection((int)point.x, (int)point.y)]
forKey:WebCoreElementIsSelectedKey];
More information about the webkit-changes
mailing list