diff options
Diffstat (limited to 'WebCore/dom/Element.cpp')
-rw-r--r-- | WebCore/dom/Element.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/WebCore/dom/Element.cpp b/WebCore/dom/Element.cpp index 5497465..fad24ee 100644 --- a/WebCore/dom/Element.cpp +++ b/WebCore/dom/Element.cpp @@ -546,16 +546,16 @@ PassRefPtr<ClientRect> Element::getBoundingClientRect() const if (quads.isEmpty()) return ClientRect::create(); - IntRect result = quads[0].enclosingBoundingBox(); + FloatRect result = quads[0].boundingBox(); for (size_t i = 1; i < quads.size(); ++i) - result.unite(quads[i].enclosingBoundingBox()); + result.unite(quads[i].boundingBox()); if (FrameView* view = document()->view()) { IntRect visibleContentRect = view->visibleContentRect(); result.move(-visibleContentRect.x(), -visibleContentRect.y()); } - adjustIntRectForAbsoluteZoom(result, renderer()); + adjustFloatRectForAbsoluteZoom(result, renderer()); return ClientRect::create(result); } @@ -1757,7 +1757,8 @@ bool Element::isSpellCheckingEnabled() const break; } - element = element->parentElement(); + ContainerNode* parent = const_cast<Element*>(element)->parentOrHostNode(); + element = (parent && parent->isElementNode()) ? toElement(parent) : 0; } return true; |