diff options
author | Konstantin Tokarev <annulen@yandex.ru> | 2016-08-25 19:20:41 +0300 |
---|---|---|
committer | Konstantin Tokarev <annulen@yandex.ru> | 2017-02-02 12:30:55 +0000 |
commit | 6882a04fb36642862b11efe514251d32070c3d65 (patch) | |
tree | b7959826000b061fd5ccc7512035c7478742f7b0 /Source/WebCore/rendering/RenderPart.cpp | |
parent | ab6df191029eeeb0b0f16f127d553265659f739e (diff) | |
download | qtwebkit-6882a04fb36642862b11efe514251d32070c3d65.tar.gz |
Imported QtWebKit TP3 (git b57bc6801f1876c3220d5a4bfea33d620d477443)
Change-Id: I3b1d8a2808782c9f34d50240000e20cb38d3680f
Reviewed-by: Konstantin Tokarev <annulen@yandex.ru>
Diffstat (limited to 'Source/WebCore/rendering/RenderPart.cpp')
-rw-r--r-- | Source/WebCore/rendering/RenderPart.cpp | 142 |
1 files changed, 0 insertions, 142 deletions
diff --git a/Source/WebCore/rendering/RenderPart.cpp b/Source/WebCore/rendering/RenderPart.cpp deleted file mode 100644 index 6a269efb1..000000000 --- a/Source/WebCore/rendering/RenderPart.cpp +++ /dev/null @@ -1,142 +0,0 @@ -/* - * Copyright (C) 1999 Lars Knoll (knoll@kde.org) - * (C) 2000 Simon Hausmann <hausmann@kde.org> - * (C) 2000 Stefan Schimanski (1Stein@gmx.de) - * Copyright (C) 2004, 2005, 2006, 2009 Apple Inc. All rights reserved. - * Copyright (C) Research In Motion Limited 2011. All rights reserved. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - * - */ - -#include "config.h" -#include "RenderPart.h" - -#include "Frame.h" -#include "FrameView.h" -#include "HTMLFrameElementBase.h" -#include "HitTestResult.h" -#include "PluginViewBase.h" -#include "RenderLayer.h" -#include "RenderSVGRoot.h" -#include "RenderView.h" - -using namespace std; - -namespace WebCore { - -RenderPart::RenderPart(Element* node) - : RenderWidget(node) -{ - setInline(false); -} - -RenderPart::~RenderPart() -{ - clearWidget(); -} - -void RenderPart::setWidget(PassRefPtr<Widget> widget) -{ - if (widget == this->widget()) - return; - - RenderWidget::setWidget(widget); - - // make sure the scrollbars are set correctly for restore - // ### find better fix - viewCleared(); -} - -void RenderPart::viewCleared() -{ -} - -#if USE(ACCELERATED_COMPOSITING) -bool RenderPart::requiresLayer() const -{ - if (RenderWidget::requiresLayer()) - return true; - - return requiresAcceleratedCompositing(); -} - -bool RenderPart::requiresAcceleratedCompositing() const -{ - // There are two general cases in which we can return true. First, if this is a plugin - // renderer and the plugin has a layer, then we need a layer. Second, if this is - // a renderer with a contentDocument and that document needs a layer, then we need - // a layer. - if (widget() && widget()->isPluginViewBase() && toPluginViewBase(widget())->platformLayer()) - return true; - - if (!node() || !node()->isFrameOwnerElement()) - return false; - - HTMLFrameOwnerElement* element = toFrameOwnerElement(node()); - if (Document* contentDocument = element->contentDocument()) { - if (RenderView* view = contentDocument->renderView()) - return view->usesCompositing(); - } - - return false; -} -#endif - -bool RenderPart::needsPreferredWidthsRecalculation() const -{ - if (RenderWidget::needsPreferredWidthsRecalculation()) - return true; - return embeddedContentBox(); -} - -RenderBox* RenderPart::embeddedContentBox() const -{ - if (!node() || !widget() || !widget()->isFrameView()) - return 0; - return toFrameView(widget())->embeddedContentBox(); -} - -bool RenderPart::nodeAtPoint(const HitTestRequest& request, HitTestResult& result, const HitTestLocation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAction action) -{ - if (!widget() || !widget()->isFrameView() || !request.allowsChildFrameContent()) - return RenderWidget::nodeAtPoint(request, result, locationInContainer, accumulatedOffset, action); - - FrameView* childFrameView = toFrameView(widget()); - RenderView* childRoot = childFrameView->renderView(); - - if (childRoot) { - LayoutPoint adjustedLocation = accumulatedOffset + location(); - LayoutPoint contentOffset = LayoutPoint(borderLeft() + paddingLeft(), borderTop() + paddingTop()) - childFrameView->scrollOffset(); - HitTestLocation newHitTestLocation(locationInContainer, -adjustedLocation - contentOffset); - HitTestRequest newHitTestRequest(request.type() | HitTestRequest::ChildFrameHitTest); - HitTestResult childFrameResult(newHitTestLocation); - - bool isInsideChildFrame = childRoot->hitTest(newHitTestRequest, newHitTestLocation, childFrameResult); - - if (newHitTestLocation.isRectBasedTest()) - result.append(childFrameResult); - else if (isInsideChildFrame) - result = childFrameResult; - - if (isInsideChildFrame) - return true; - } - - return RenderWidget::nodeAtPoint(request, result, locationInContainer, accumulatedOffset, action); -} - -} |