ScrollingTreeFrameHostingNode.cpp [plain text]
#include "config.h"
#include "ScrollingTreeFrameHostingNode.h"
#if ENABLE(ASYNC_SCROLLING)
#include "Logging.h"
#include "ScrollingStateFrameHostingNode.h"
#include "ScrollingStateTree.h"
#include "ScrollingTree.h"
#include <wtf/text/TextStream.h>
namespace WebCore {
Ref<ScrollingTreeFrameHostingNode> ScrollingTreeFrameHostingNode::create(ScrollingTree& scrollingTree, ScrollingNodeID nodeID)
{
return adoptRef(*new ScrollingTreeFrameHostingNode(scrollingTree, nodeID));
}
ScrollingTreeFrameHostingNode::ScrollingTreeFrameHostingNode(ScrollingTree& scrollingTree, ScrollingNodeID nodeID)
: ScrollingTreeNode(scrollingTree, ScrollingNodeType::FrameHosting, nodeID)
{
ASSERT(isFrameHostingNode());
}
ScrollingTreeFrameHostingNode::~ScrollingTreeFrameHostingNode() = default;
void ScrollingTreeFrameHostingNode::commitStateBeforeChildren(const ScrollingStateNode& stateNode)
{
const ScrollingStateFrameHostingNode& frameHostingStateNode = downcast<ScrollingStateFrameHostingNode>(stateNode);
if (frameHostingStateNode.hasChangedProperty(ScrollingStateFrameHostingNode::ParentRelativeScrollableRect))
m_parentRelativeScrollableRect = frameHostingStateNode.parentRelativeScrollableRect();
}
void ScrollingTreeFrameHostingNode::applyLayerPositions()
{
}
LayoutPoint ScrollingTreeFrameHostingNode::parentToLocalPoint(LayoutPoint point) const
{
return point - toLayoutSize(parentRelativeScrollableRect().location());
}
void ScrollingTreeFrameHostingNode::dumpProperties(TextStream& ts, ScrollingStateTreeAsTextBehavior behavior) const
{
ts << "frame hosting node";
ScrollingTreeNode::dumpProperties(ts, behavior);
if (!m_parentRelativeScrollableRect.isEmpty())
ts.dumpProperty("parent relative scrollable rect", m_parentRelativeScrollableRect);
}
}
#endif // ENABLE(ASYNC_SCROLLING)