OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
4 * (C) 2001 Peter Kelly (pmk@post.com) | 4 * (C) 2001 Peter Kelly (pmk@post.com) |
5 * (C) 2001 Dirk Mueller (mueller@kde.org) | 5 * (C) 2001 Dirk Mueller (mueller@kde.org) |
6 * (C) 2007 David Smith (catfish.man@gmail.com) | 6 * (C) 2007 David Smith (catfish.man@gmail.com) |
7 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012, 2013 Apple Inc.
All rights reserved. | 7 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012, 2013 Apple Inc.
All rights reserved. |
8 * (C) 2007 Eric Seidel (eric@webkit.org) | 8 * (C) 2007 Eric Seidel (eric@webkit.org) |
9 * | 9 * |
10 * This library is free software; you can redistribute it and/or | 10 * This library is free software; you can redistribute it and/or |
(...skipping 599 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
610 if (!callback || disableCustomCallbacks) { | 610 if (!callback || disableCustomCallbacks) { |
611 nativeApplyScroll(scrollState); | 611 nativeApplyScroll(scrollState); |
612 return; | 612 return; |
613 } | 613 } |
614 if (callback->nativeScrollBehavior() != WebNativeScrollBehavior::PerformAfte
rNativeScroll) | 614 if (callback->nativeScrollBehavior() != WebNativeScrollBehavior::PerformAfte
rNativeScroll) |
615 callback->handleEvent(&scrollState); | 615 callback->handleEvent(&scrollState); |
616 if (callback->nativeScrollBehavior() != WebNativeScrollBehavior::DisableNati
veScroll) | 616 if (callback->nativeScrollBehavior() != WebNativeScrollBehavior::DisableNati
veScroll) |
617 nativeApplyScroll(scrollState); | 617 nativeApplyScroll(scrollState); |
618 if (callback->nativeScrollBehavior() == WebNativeScrollBehavior::PerformAfte
rNativeScroll) | 618 if (callback->nativeScrollBehavior() == WebNativeScrollBehavior::PerformAfte
rNativeScroll) |
619 callback->handleEvent(&scrollState); | 619 callback->handleEvent(&scrollState); |
620 }; | 620 } |
621 | 621 |
622 int Element::offsetLeft() | 622 int Element::offsetLeft() |
623 { | 623 { |
624 document().updateStyleAndLayoutIgnorePendingStylesheetsForNode(this); | 624 document().updateStyleAndLayoutIgnorePendingStylesheetsForNode(this); |
625 if (LayoutBoxModelObject* layoutObject = layoutBoxModelObject()) | 625 if (LayoutBoxModelObject* layoutObject = layoutBoxModelObject()) |
626 return adjustLayoutUnitForAbsoluteZoom(LayoutUnit(layoutObject->pixelSna
ppedOffsetLeft()), layoutObject->styleRef()).round(); | 626 return adjustLayoutUnitForAbsoluteZoom(LayoutUnit(layoutObject->pixelSna
ppedOffsetLeft(offsetParent())), layoutObject->styleRef()).round(); |
627 return 0; | 627 return 0; |
628 } | 628 } |
629 | 629 |
630 int Element::offsetTop() | 630 int Element::offsetTop() |
631 { | 631 { |
632 document().updateStyleAndLayoutIgnorePendingStylesheetsForNode(this); | 632 document().updateStyleAndLayoutIgnorePendingStylesheetsForNode(this); |
633 if (LayoutBoxModelObject* layoutObject = layoutBoxModelObject()) | 633 if (LayoutBoxModelObject* layoutObject = layoutBoxModelObject()) |
634 return adjustLayoutUnitForAbsoluteZoom(LayoutUnit(layoutObject->pixelSna
ppedOffsetTop()), layoutObject->styleRef()).round(); | 634 return adjustLayoutUnitForAbsoluteZoom(LayoutUnit(layoutObject->pixelSna
ppedOffsetTop(offsetParent())), layoutObject->styleRef()).round(); |
635 return 0; | 635 return 0; |
636 } | 636 } |
637 | 637 |
638 int Element::offsetWidth() | 638 int Element::offsetWidth() |
639 { | 639 { |
640 document().updateStyleAndLayoutIgnorePendingStylesheetsForNode(this); | 640 document().updateStyleAndLayoutIgnorePendingStylesheetsForNode(this); |
641 if (LayoutBoxModelObject* layoutObject = layoutBoxModelObject()) | 641 if (LayoutBoxModelObject* layoutObject = layoutBoxModelObject()) |
642 return adjustLayoutUnitForAbsoluteZoom(LayoutUnit(layoutObject->pixelSna
ppedOffsetWidth()), layoutObject->styleRef()).round(); | 642 return adjustLayoutUnitForAbsoluteZoom(LayoutUnit(layoutObject->pixelSna
ppedOffsetWidth(offsetParent())), layoutObject->styleRef()).round(); |
643 return 0; | 643 return 0; |
644 } | 644 } |
645 | 645 |
646 int Element::offsetHeight() | 646 int Element::offsetHeight() |
647 { | 647 { |
648 document().updateStyleAndLayoutIgnorePendingStylesheetsForNode(this); | 648 document().updateStyleAndLayoutIgnorePendingStylesheetsForNode(this); |
649 if (LayoutBoxModelObject* layoutObject = layoutBoxModelObject()) | 649 if (LayoutBoxModelObject* layoutObject = layoutBoxModelObject()) |
650 return adjustLayoutUnitForAbsoluteZoom(LayoutUnit(layoutObject->pixelSna
ppedOffsetHeight()), layoutObject->styleRef()).round(); | 650 return adjustLayoutUnitForAbsoluteZoom(LayoutUnit(layoutObject->pixelSna
ppedOffsetHeight(offsetParent())), layoutObject->styleRef()).round(); |
651 return 0; | 651 return 0; |
652 } | 652 } |
653 | 653 |
654 Element* Element::offsetParent() | 654 Element* Element::offsetParent() |
655 { | 655 { |
656 document().updateStyleAndLayoutIgnorePendingStylesheetsForNode(this); | 656 document().updateStyleAndLayoutIgnorePendingStylesheetsForNode(this); |
657 | 657 |
658 LayoutObject* layoutObject = this->layoutObject(); | 658 LayoutObject* layoutObject = this->layoutObject(); |
659 if (!layoutObject) | 659 return layoutObject ? layoutObject->offsetParent() : nullptr; |
660 return nullptr; | |
661 | |
662 Element* element = layoutObject->offsetParent(); | |
663 if (!element) | |
664 return nullptr; | |
665 | |
666 if (element->isInShadowTree() && !element->containingShadowRoot()->isOpenOrV
0()) | |
667 return nullptr; | |
668 | |
669 return element; | |
670 } | 660 } |
671 | 661 |
672 int Element::clientLeft() | 662 int Element::clientLeft() |
673 { | 663 { |
674 document().updateStyleAndLayoutIgnorePendingStylesheetsForNode(this); | 664 document().updateStyleAndLayoutIgnorePendingStylesheetsForNode(this); |
675 | 665 |
676 if (LayoutBox* layoutObject = layoutBox()) | 666 if (LayoutBox* layoutObject = layoutBox()) |
677 return adjustLayoutUnitForAbsoluteZoom(layoutObject->clientLeft(), layou
tObject->styleRef()).round(); | 667 return adjustLayoutUnitForAbsoluteZoom(layoutObject->clientLeft(), layou
tObject->styleRef()).round(); |
678 return 0; | 668 return 0; |
679 } | 669 } |
(...skipping 3058 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3738 | 3728 |
3739 DEFINE_TRACE_WRAPPERS(Element) | 3729 DEFINE_TRACE_WRAPPERS(Element) |
3740 { | 3730 { |
3741 if (hasRareData()) { | 3731 if (hasRareData()) { |
3742 visitor->traceWrappers(elementRareData()); | 3732 visitor->traceWrappers(elementRareData()); |
3743 } | 3733 } |
3744 ContainerNode::traceWrappers(visitor); | 3734 ContainerNode::traceWrappers(visitor); |
3745 } | 3735 } |
3746 | 3736 |
3747 } // namespace blink | 3737 } // namespace blink |
OLD | NEW |