bool RenderImage::nodeAtPoint(NodeInfo& info, int _x, int _y, int _tx, int _ty, HitTestAction hitTestAction, bool inside) { inside |= RenderReplaced::nodeAtPoint(info, _x, _y, _tx, _ty, hitTestAction, inside); if (inside && element()) { int tx = _tx + m_x; int ty = _ty + m_y; HTMLMapElementImpl* map = imageMap(); if (map) { // we're a client side image map inside = map->mapMouseEvent(_x - tx, _y - ty, contentWidth(), contentHeight(), info); info.setInnerNonSharedNode(element()); } } return inside; }
bool RenderImage::nodeAtPoint(NodeInfo& info, int _x, int _y, int _tx, int _ty, HitTestAction hitTestAction, bool inside) { inside |= RenderReplaced::nodeAtPoint(info, _x, _y, _tx, _ty, hitTestAction, inside); if (inside && element()) { int tx = _tx + m_x; int ty = _ty + m_y; HTMLImageElementImpl* i = element()->id() == ID_IMG ? static_cast<HTMLImageElementImpl*>(element()) : 0; HTMLMapElementImpl* map; if (i && i->document()->isHTMLDocument() && (map = static_cast<HTMLDocumentImpl*>(i->document())->getMap(i->imageMap()))) { // we're a client side image map inside = map->mapMouseEvent(_x - tx, _y - ty, contentWidth(), contentHeight(), info); info.setInnerNonSharedNode(element()); } } return inside; }