bool HTMLMapElement::mapMouseEvent(LayoutPoint location, const LayoutSize& size, HitTestResult& result) { HTMLAreaElement* defaultArea = 0; for (HTMLAreaElement* area = Traversal<HTMLAreaElement>::firstWithin(*this); area; area = Traversal<HTMLAreaElement>::next(*area, this)) { if (area->isDefault()) { if (!defaultArea) defaultArea = area; } else if (area->mapMouseEvent(location, size, result)) { return true; } } if (defaultArea) { result.setInnerNode(defaultArea); result.setURLElement(defaultArea); } return defaultArea; }
bool HTMLMapElement::mapMouseEvent(int x, int y, const IntSize& size, HitTestResult& result) { HTMLAreaElement* defaultArea = 0; Node *node = this; while ((node = node->traverseNextNode(this))) { if (node->hasTagName(areaTag)) { HTMLAreaElement* areaElt = static_cast<HTMLAreaElement*>(node); if (areaElt->isDefault()) { if (!defaultArea) defaultArea = areaElt; } else if (areaElt->mapMouseEvent(x, y, size, result)) return true; } } if (defaultArea) { result.setInnerNode(defaultArea); result.setURLElement(defaultArea); } return defaultArea; }
bool HTMLMapElement::mapMouseEvent(LayoutPoint location, const LayoutSize& size, HitTestResult& result) { HTMLAreaElement* defaultArea = 0; Element* element = this; while ((element = ElementTraversal::next(element, this))) { if (element->hasTagName(areaTag)) { HTMLAreaElement* areaElt = static_cast<HTMLAreaElement*>(element); if (areaElt->isDefault()) { if (!defaultArea) defaultArea = areaElt; } else if (areaElt->mapMouseEvent(location, size, result)) return true; } } if (defaultArea) { result.setInnerNode(defaultArea); result.setURLElement(defaultArea); } return defaultArea; }