Reviewed by Maciej.
authorantti <antti@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 2 Mar 2007 08:22:45 +0000 (08:22 +0000)
committerantti <antti@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 2 Mar 2007 08:22:45 +0000 (08:22 +0000)
        Fix for http://bugs.webkit.org/show_bug.cgi?id=12895
        REGRESSION: imagemap: pointer cursor is shown everywhere
        <rdar://problem/5028163>

        Image with imagemap should never itself be URLElement in hit test results.

        No layout test, cursor state can't be captured.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::hitTest):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@19941 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog
WebCore/rendering/RenderLayer.cpp

index c165e14af3a8b560735d85cd748ef8e8db65ba2f..353c5881d157d9763fdd8efc4f2c1092ff7d9cc3 100644 (file)
@@ -1,3 +1,18 @@
+2007-03-01  Antti Koivisto  <antti@apple.com>
+
+        Reviewed by Maciej.
+
+        Fix for http://bugs.webkit.org/show_bug.cgi?id=12895
+        REGRESSION: imagemap: pointer cursor is shown everywhere
+        <rdar://problem/5028163>
+        Image with imagemap should never itself be URLElement in hit test results. 
+               
+        No layout test, cursor state can't be captured.
+
+        * rendering/RenderLayer.cpp:
+        (WebCore::RenderLayer::hitTest):
+
 2007-03-01  Antti Koivisto  <antti@apple.com>
 
         Reviewed by Maciej.
index b4211d4e3430db88d9308757e29ad8d953a79be7..cd7208f94ea0f9d8930586a81fcdfe69ebfb24dc 100644 (file)
@@ -1528,7 +1528,8 @@ bool RenderLayer::hitTest(const HitTestRequest& request, HitTestResult& result)
     // it already set URLElement and only use the innermost.
     Node* node = result.innerNode();
     while (node) {
-        if (node->isLink() && !result.URLElement())
+        // for imagemaps, URLElement is the associated area element not the image itself
+        if (node->isLink() && !result.URLElement() && !node->hasTagName(imgTag))
             result.setURLElement(static_cast<Element*>(node));
         node = node->parentNode();
     }