[webkit-changes] cvs commit: WebCore/kwq WebCoreBridge.mm
Timothy
thatcher at opensource.apple.com
Tue Nov 15 17:39:04 PST 2005
thatcher 05/11/15 17:39:04
Modified: . Tag: Safari-1-3-branch ChangeLog
kwq Tag: Safari-1-3-branch WebCoreBridge.mm
Log:
Merged fix from TOT to Safari-1-3-branch
2005-11-15 Vicki Murley <vicki at apple.com>
Reviewed by Tim O.
Improve this loop. We'd get an infinite loop in the old code if we came across a part with no renderer, such as a frame whose src is an image.
* kwq/WebCoreBridge.mm:
(-[WebCoreBridge elementAtPoint:]):
Revision Changes Path
No revision
No revision
1.335.2.23 +13 -0 WebCore/ChangeLog
Index: ChangeLog
===================================================================
RCS file: /cvs/root/WebCore/ChangeLog,v
retrieving revision 1.335.2.22
retrieving revision 1.335.2.23
diff -u -r1.335.2.22 -r1.335.2.23
--- ChangeLog 16 Nov 2005 00:24:37 -0000 1.335.2.22
+++ ChangeLog 16 Nov 2005 01:38:57 -0000 1.335.2.23
@@ -2,6 +2,19 @@
Merged fix from TOT to Safari-1-3-branch
+ 2005-11-15 Vicki Murley <vicki at apple.com>
+
+ Reviewed by Tim O.
+
+ Improve this loop. We'd get an infinite loop in the old code if we came across a part with no renderer, such as a frame whose src is an image.
+
+ * kwq/WebCoreBridge.mm:
+ (-[WebCoreBridge elementAtPoint:]):
+
+2005-11-15 Timothy Hatcher <timothy at apple.com>
+
+ Merged fix from TOT to Safari-1-3-branch
+
2005-11-13 Vicki Murley <vicki at apple.com>
Reviewed by Maciej.
No revision
No revision
1.383.6.5 +19 -16 WebCore/kwq/WebCoreBridge.mm
Index: WebCoreBridge.mm
===================================================================
RCS file: /cvs/root/WebCore/kwq/WebCoreBridge.mm,v
retrieving revision 1.383.6.4
retrieving revision 1.383.6.5
diff -u -r1.383.6.4 -r1.383.6.5
--- WebCoreBridge.mm 16 Nov 2005 00:24:40 -0000 1.383.6.4
+++ WebCoreBridge.mm 16 Nov 2005 01:39:02 -0000 1.383.6.5
@@ -1025,24 +1025,27 @@
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 = 0;
- while (n && n->renderer() && n->renderer()->isWidget() && widget && widget->inherits("KHTMLView")) {
+ while (true) {
+ n = nodeInfo.innerNode();
+ if (!n || !n->renderer() || !n->renderer()->isWidget())
+ break;
+ widget = static_cast<RenderWidget *>(n->renderer())->widget();
+ if (!widget || !widget->inherits("KHTMLView"))
+ break;
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();
- }
- }
+ if (!kpart || !static_cast<KWQKHTMLPart *>(kpart)->renderer())
+ break;
+ 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;
+ }
NSMutableDictionary *element = [NSMutableDictionary dictionary];
[element setObject:[NSNumber numberWithBool:_part->isPointInsideSelection((int)point.x, (int)point.y)]
More information about the webkit-changes
mailing list