| 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 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 155 if (!positionedDescendants) | 155 if (!positionedDescendants) |
| 156 return; | 156 return; |
| 157 TrackedRendererListHashSet::iterator end = positionedDescendants->end(); | 157 TrackedRendererListHashSet::iterator end = positionedDescendants->end(); |
| 158 for (TrackedRendererListHashSet::iterator it = positionedDescendants->begin(
); it != end; ++it) { | 158 for (TrackedRendererListHashSet::iterator it = positionedDescendants->begin(
); it != end; ++it) { |
| 159 RenderBox* box = *it; | 159 RenderBox* box = *it; |
| 160 if (box->node() && box->node()->hasTagName(HTMLNames::dialogTag)) | 160 if (box->node() && box->node()->hasTagName(HTMLNames::dialogTag)) |
| 161 positionDialog(box); | 161 positionDialog(box); |
| 162 } | 162 } |
| 163 } | 163 } |
| 164 | 164 |
| 165 void RenderView::layoutContent(const LayoutState& state) | 165 void RenderView::layoutContent() |
| 166 { | 166 { |
| 167 ASSERT(needsLayout()); | 167 ASSERT(needsLayout()); |
| 168 | 168 |
| 169 LayoutRectRecorder recorder(*this); | 169 LayoutRectRecorder recorder(*this); |
| 170 RenderBlockFlow::layout(); | 170 RenderBlockFlow::layout(); |
| 171 | 171 |
| 172 if (RuntimeEnabledFeatures::dialogElementEnabled()) | 172 if (RuntimeEnabledFeatures::dialogElementEnabled()) |
| 173 positionDialogs(); | 173 positionDialogs(); |
| 174 | 174 |
| 175 #ifndef NDEBUG | 175 #ifndef NDEBUG |
| 176 checkLayoutState(state); | 176 checkLayoutState(); |
| 177 #endif | 177 #endif |
| 178 } | 178 } |
| 179 | 179 |
| 180 #ifndef NDEBUG | 180 #ifndef NDEBUG |
| 181 void RenderView::checkLayoutState(const LayoutState& state) | 181 void RenderView::checkLayoutState() |
| 182 { | 182 { |
| 183 if (!RuntimeEnabledFeatures::repaintAfterLayoutEnabled()) { | 183 if (!RuntimeEnabledFeatures::repaintAfterLayoutEnabled()) { |
| 184 ASSERT(layoutDeltaMatches(LayoutSize())); | 184 ASSERT(layoutDeltaMatches(LayoutSize())); |
| 185 } | 185 } |
| 186 ASSERT(!m_layoutStateDisableCount); | 186 ASSERT(!m_layoutStateDisableCount); |
| 187 ASSERT(m_layoutState == &state); | 187 ASSERT(!m_layoutState->m_next); |
| 188 } | 188 } |
| 189 #endif | 189 #endif |
| 190 | 190 |
| 191 void RenderView::initializeLayoutState(LayoutState& state) | 191 void RootLayoutStateScope::initializeLayoutState() |
| 192 { | 192 { |
| 193 state.m_clipped = false; | 193 m_rootLayoutState.m_clipped = false; |
| 194 state.m_pageLogicalHeight = m_pageLogicalHeight; | 194 m_rootLayoutState.m_pageLogicalHeight = m_view.m_pageLogicalHeight; |
| 195 state.m_pageLogicalHeightChanged = m_pageLogicalHeightChanged; | 195 m_rootLayoutState.m_pageLogicalHeightChanged = m_view.m_pageLogicalHeightCha
nged; |
| 196 state.m_isPaginated = state.m_pageLogicalHeight; | 196 m_rootLayoutState.m_isPaginated = m_rootLayoutState.m_pageLogicalHeight; |
| 197 } | 197 } |
| 198 | 198 |
| 199 void RenderView::layout() | 199 void RenderView::layout() |
| 200 { | 200 { |
| 201 if (!document().paginated()) | 201 if (!document().paginated()) |
| 202 setPageLogicalHeight(0); | 202 setPageLogicalHeight(0); |
| 203 | 203 |
| 204 if (shouldUsePrintingLayout()) | 204 if (shouldUsePrintingLayout()) |
| 205 m_minPreferredLogicalWidth = m_maxPreferredLogicalWidth = logicalWidth()
; | 205 m_minPreferredLogicalWidth = m_maxPreferredLogicalWidth = logicalWidth()
; |
| 206 | 206 |
| (...skipping 15 matching lines...) Expand all Loading... |
| 222 } | 222 } |
| 223 | 223 |
| 224 if (document().svgExtensions()) | 224 if (document().svgExtensions()) |
| 225 document().accessSVGExtensions().invalidateSVGRootsWithRelativeLengt
hDescendents(&layoutScope); | 225 document().accessSVGExtensions().invalidateSVGRootsWithRelativeLengt
hDescendents(&layoutScope); |
| 226 } | 226 } |
| 227 | 227 |
| 228 ASSERT(!m_layoutState); | 228 ASSERT(!m_layoutState); |
| 229 if (!needsLayout()) | 229 if (!needsLayout()) |
| 230 return; | 230 return; |
| 231 | 231 |
| 232 LayoutState state; | 232 RootLayoutStateScope rootLayoutStateScope(*this); |
| 233 initializeLayoutState(state); | |
| 234 | 233 |
| 235 m_pageLogicalHeightChanged = false; | 234 m_pageLogicalHeightChanged = false; |
| 236 m_layoutState = &state; | |
| 237 | 235 |
| 238 layoutContent(state); | 236 layoutContent(); |
| 239 | 237 |
| 240 #ifndef NDEBUG | 238 #ifndef NDEBUG |
| 241 checkLayoutState(state); | 239 checkLayoutState(); |
| 242 #endif | 240 #endif |
| 243 m_layoutState = 0; | |
| 244 clearNeedsLayout(); | 241 clearNeedsLayout(); |
| 245 } | 242 } |
| 246 | 243 |
| 247 void RenderView::mapLocalToContainer(const RenderLayerModelObject* repaintContai
ner, TransformState& transformState, MapCoordinatesFlags mode, bool* wasFixed) c
onst | 244 void RenderView::mapLocalToContainer(const RenderLayerModelObject* repaintContai
ner, TransformState& transformState, MapCoordinatesFlags mode, bool* wasFixed) c
onst |
| 248 { | 245 { |
| 249 ASSERT_UNUSED(wasFixed, !wasFixed || *wasFixed == static_cast<bool>(mode & I
sFixed)); | 246 ASSERT_UNUSED(wasFixed, !wasFixed || *wasFixed == static_cast<bool>(mode & I
sFixed)); |
| 250 | 247 |
| 251 if (!repaintContainer && mode & UseTransforms && shouldUseTransformFromConta
iner(0)) { | 248 if (!repaintContainer && mode & UseTransforms && shouldUseTransformFromConta
iner(0)) { |
| 252 TransformationMatrix t; | 249 TransformationMatrix t; |
| 253 getTransformFromContainer(0, LayoutSize(), t); | 250 getTransformFromContainer(0, LayoutSize(), t); |
| (...skipping 729 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 983 return viewWidth(IncludeScrollbars) / scale; | 980 return viewWidth(IncludeScrollbars) / scale; |
| 984 } | 981 } |
| 985 | 982 |
| 986 double RenderView::layoutViewportHeight() const | 983 double RenderView::layoutViewportHeight() const |
| 987 { | 984 { |
| 988 float scale = m_frameView ? m_frameView->frame().pageZoomFactor() : 1; | 985 float scale = m_frameView ? m_frameView->frame().pageZoomFactor() : 1; |
| 989 return viewHeight(IncludeScrollbars) / scale; | 986 return viewHeight(IncludeScrollbars) / scale; |
| 990 } | 987 } |
| 991 | 988 |
| 992 } // namespace WebCore | 989 } // namespace WebCore |
| OLD | NEW |