OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv
ed. | 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv
ed. |
4 * | 4 * |
5 * This library is free software; you can redistribute it and/or | 5 * This library is free software; you can redistribute it and/or |
6 * modify it under the terms of the GNU Library General Public | 6 * modify it under the terms of the GNU Library General Public |
7 * License as published by the Free Software Foundation; either | 7 * License as published by the Free Software Foundation; either |
8 * version 2 of the License, or (at your option) any later version. | 8 * version 2 of the License, or (at your option) any later version. |
9 * | 9 * |
10 * This library is distributed in the hope that it will be useful, | 10 * This library is distributed in the hope that it will be useful, |
(...skipping 19 matching lines...) Expand all Loading... |
30 #include "sky/engine/core/rendering/RenderGeometryMap.h" | 30 #include "sky/engine/core/rendering/RenderGeometryMap.h" |
31 #include "sky/engine/core/rendering/RenderLayer.h" | 31 #include "sky/engine/core/rendering/RenderLayer.h" |
32 #include "sky/engine/platform/TraceEvent.h" | 32 #include "sky/engine/platform/TraceEvent.h" |
33 #include "sky/engine/platform/geometry/FloatQuad.h" | 33 #include "sky/engine/platform/geometry/FloatQuad.h" |
34 #include "sky/engine/platform/geometry/TransformState.h" | 34 #include "sky/engine/platform/geometry/TransformState.h" |
35 #include "sky/engine/platform/graphics/GraphicsContext.h" | 35 #include "sky/engine/platform/graphics/GraphicsContext.h" |
36 | 36 |
37 namespace blink { | 37 namespace blink { |
38 | 38 |
39 RenderView::RenderView(Document* document) | 39 RenderView::RenderView(Document* document) |
40 : RenderBlockFlow(document) | 40 : RenderFlexibleBox(document) |
41 , m_frameView(document->view()) | 41 , m_frameView(document->view()) |
42 , m_selectionStart(nullptr) | 42 , m_selectionStart(nullptr) |
43 , m_selectionEnd(nullptr) | 43 , m_selectionEnd(nullptr) |
44 , m_selectionStartPos(-1) | 44 , m_selectionStartPos(-1) |
45 , m_selectionEndPos(-1) | 45 , m_selectionEndPos(-1) |
46 , m_renderCounterCount(0) | 46 , m_renderCounterCount(0) |
47 , m_hitTestCount(0) | 47 , m_hitTestCount(0) |
48 { | 48 { |
49 // init RenderObject attributes | 49 // init RenderObject attributes |
50 setInline(false); | 50 setInline(false); |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
109 { | 109 { |
110 computedValues.m_extent = m_frameView ? LayoutUnit(viewLogicalHeight()) : lo
gicalHeight; | 110 computedValues.m_extent = m_frameView ? LayoutUnit(viewLogicalHeight()) : lo
gicalHeight; |
111 } | 111 } |
112 | 112 |
113 void RenderView::updateLogicalWidth() | 113 void RenderView::updateLogicalWidth() |
114 { | 114 { |
115 if (m_frameView) | 115 if (m_frameView) |
116 setLogicalWidth(viewLogicalWidth()); | 116 setLogicalWidth(viewLogicalWidth()); |
117 } | 117 } |
118 | 118 |
119 LayoutUnit RenderView::availableLogicalHeight(AvailableLogicalHeightType heightT
ype) const | |
120 { | |
121 return RenderBlockFlow::availableLogicalHeight(heightType); | |
122 } | |
123 | |
124 bool RenderView::isChildAllowed(RenderObject* child, RenderStyle*) const | 119 bool RenderView::isChildAllowed(RenderObject* child, RenderStyle*) const |
125 { | 120 { |
126 return child->isBox(); | 121 return child->isBox(); |
127 } | 122 } |
128 | 123 |
129 void RenderView::layout() | 124 void RenderView::layout() |
130 { | 125 { |
131 SubtreeLayoutScope layoutScope(*this); | 126 SubtreeLayoutScope layoutScope(*this); |
132 | 127 |
133 bool relayoutChildren = (!m_frameView || width() != viewWidth() || height()
!= viewHeight()); | 128 bool relayoutChildren = (!m_frameView || width() != viewWidth() || height()
!= viewHeight()); |
134 if (relayoutChildren) { | 129 if (relayoutChildren) { |
135 layoutScope.setChildNeedsLayout(this); | 130 layoutScope.setChildNeedsLayout(this); |
136 for (RenderObject* child = firstChild(); child; child = child->nextSibli
ng()) { | 131 for (RenderObject* child = firstChild(); child; child = child->nextSibli
ng()) { |
137 if ((child->isBox() && toRenderBox(child)->hasRelativeLogicalHeight(
)) | 132 if ((child->isBox() && toRenderBox(child)->hasRelativeLogicalHeight(
)) |
138 || child->style()->logicalHeight().isPercent() | 133 || child->style()->logicalHeight().isPercent() |
139 || child->style()->logicalMinHeight().isPercent() | 134 || child->style()->logicalMinHeight().isPercent() |
140 || child->style()->logicalMaxHeight().isPercent()) | 135 || child->style()->logicalMaxHeight().isPercent()) |
141 layoutScope.setChildNeedsLayout(child); | 136 layoutScope.setChildNeedsLayout(child); |
142 } | 137 } |
143 } | 138 } |
144 | 139 |
145 if (!needsLayout()) | 140 if (!needsLayout()) |
146 return; | 141 return; |
147 | 142 |
148 RenderBlockFlow::layout(); | 143 RenderFlexibleBox::layout(); |
149 clearNeedsLayout(); | 144 clearNeedsLayout(); |
150 } | 145 } |
151 | 146 |
152 void RenderView::mapLocalToContainer(const RenderBox* paintInvalidationContainer
, TransformState& transformState, MapCoordinatesFlags mode) const | 147 void RenderView::mapLocalToContainer(const RenderBox* paintInvalidationContainer
, TransformState& transformState, MapCoordinatesFlags mode) const |
153 { | 148 { |
154 if (!paintInvalidationContainer && mode & UseTransforms && shouldUseTransfor
mFromContainer(0)) { | 149 if (!paintInvalidationContainer && mode & UseTransforms && shouldUseTransfor
mFromContainer(0)) { |
155 TransformationMatrix t; | 150 TransformationMatrix t; |
156 getTransformFromContainer(0, LayoutSize(), t); | 151 getTransformFromContainer(0, LayoutSize(), t); |
157 transformState.applyTransform(t); | 152 transformState.applyTransform(t); |
158 } | 153 } |
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
403 m_iframes.remove(iframe); | 398 m_iframes.remove(iframe); |
404 } | 399 } |
405 | 400 |
406 void RenderView::updateIFramesAfterLayout() | 401 void RenderView::updateIFramesAfterLayout() |
407 { | 402 { |
408 for (auto& iframe: m_iframes) | 403 for (auto& iframe: m_iframes) |
409 iframe->updateWidgetBounds(); | 404 iframe->updateWidgetBounds(); |
410 } | 405 } |
411 | 406 |
412 } // namespace blink | 407 } // namespace blink |
OLD | NEW |