| 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 if (m_frameView->partialLayout().isStopping()) | 175 if (m_frameView->partialLayout().isStopping()) |
| 176 return; | 176 return; |
| 177 | 177 |
| 178 #ifndef NDEBUG | 178 #ifndef NDEBUG |
| 179 checkLayoutState(state); | 179 checkLayoutState(); |
| 180 #endif | 180 #endif |
| 181 } | 181 } |
| 182 | 182 |
| 183 #ifndef NDEBUG | 183 #ifndef NDEBUG |
| 184 void RenderView::checkLayoutState(const LayoutState& state) | 184 void RenderView::checkLayoutState() |
| 185 { | 185 { |
| 186 if (!RuntimeEnabledFeatures::repaintAfterLayoutEnabled()) { | 186 if (!RuntimeEnabledFeatures::repaintAfterLayoutEnabled()) { |
| 187 ASSERT(layoutDeltaMatches(LayoutSize())); | 187 ASSERT(layoutDeltaMatches(LayoutSize())); |
| 188 } | 188 } |
| 189 ASSERT(!m_layoutStateDisableCount); | 189 ASSERT(!m_layoutStateDisableCount); |
| 190 ASSERT(m_layoutState == &state); | 190 ASSERT(!m_layoutState->m_next); |
| 191 } | 191 } |
| 192 #endif | 192 #endif |
| 193 | 193 |
| 194 void RenderView::initializeLayoutState(LayoutState& state) | 194 void RootLayoutStateScope::initializeLayoutState() |
| 195 { | 195 { |
| 196 state.m_clipped = false; | 196 m_rootLayoutState.m_clipped = false; |
| 197 state.m_pageLogicalHeight = m_pageLogicalHeight; | 197 m_rootLayoutState.m_pageLogicalHeight = m_view.m_pageLogicalHeight; |
| 198 state.m_pageLogicalHeightChanged = m_pageLogicalHeightChanged; | 198 m_rootLayoutState.m_pageLogicalHeightChanged = m_view.m_pageLogicalHeightCha
nged; |
| 199 state.m_isPaginated = state.m_pageLogicalHeight; | 199 m_rootLayoutState.m_isPaginated = m_rootLayoutState.m_pageLogicalHeight; |
| 200 } | 200 } |
| 201 | 201 |
| 202 void RenderView::layout() | 202 void RenderView::layout() |
| 203 { | 203 { |
| 204 if (!document().paginated()) | 204 if (!document().paginated()) |
| 205 setPageLogicalHeight(0); | 205 setPageLogicalHeight(0); |
| 206 | 206 |
| 207 if (shouldUsePrintingLayout()) | 207 if (shouldUsePrintingLayout()) |
| 208 m_minPreferredLogicalWidth = m_maxPreferredLogicalWidth = logicalWidth()
; | 208 m_minPreferredLogicalWidth = m_maxPreferredLogicalWidth = logicalWidth()
; |
| 209 | 209 |
| (...skipping 15 matching lines...) Expand all Loading... |
| 225 } | 225 } |
| 226 | 226 |
| 227 if (document().svgExtensions()) | 227 if (document().svgExtensions()) |
| 228 document().accessSVGExtensions().invalidateSVGRootsWithRelativeLengt
hDescendents(&layoutScope); | 228 document().accessSVGExtensions().invalidateSVGRootsWithRelativeLengt
hDescendents(&layoutScope); |
| 229 } | 229 } |
| 230 | 230 |
| 231 ASSERT(!m_layoutState); | 231 ASSERT(!m_layoutState); |
| 232 if (!needsLayout()) | 232 if (!needsLayout()) |
| 233 return; | 233 return; |
| 234 | 234 |
| 235 LayoutState state; | 235 RootLayoutStateScope rootLayoutStateScope(*this); |
| 236 initializeLayoutState(state); | |
| 237 | 236 |
| 238 m_pageLogicalHeightChanged = false; | 237 m_pageLogicalHeightChanged = false; |
| 239 m_layoutState = &state; | |
| 240 | 238 |
| 241 layoutContent(state); | 239 layoutContent(); |
| 242 | 240 |
| 243 if (m_frameView->partialLayout().isStopping()) { | 241 if (m_frameView->partialLayout().isStopping()) { |
| 244 m_layoutState = 0; | |
| 245 return; | 242 return; |
| 246 } | 243 } |
| 247 | 244 |
| 248 #ifndef NDEBUG | 245 #ifndef NDEBUG |
| 249 checkLayoutState(state); | 246 checkLayoutState(); |
| 250 #endif | 247 #endif |
| 251 m_layoutState = 0; | |
| 252 clearNeedsLayout(); | 248 clearNeedsLayout(); |
| 253 } | 249 } |
| 254 | 250 |
| 255 void RenderView::mapLocalToContainer(const RenderLayerModelObject* repaintContai
ner, TransformState& transformState, MapCoordinatesFlags mode, bool* wasFixed) c
onst | 251 void RenderView::mapLocalToContainer(const RenderLayerModelObject* repaintContai
ner, TransformState& transformState, MapCoordinatesFlags mode, bool* wasFixed) c
onst |
| 256 { | 252 { |
| 257 ASSERT_UNUSED(wasFixed, !wasFixed || *wasFixed == static_cast<bool>(mode & I
sFixed)); | 253 ASSERT_UNUSED(wasFixed, !wasFixed || *wasFixed == static_cast<bool>(mode & I
sFixed)); |
| 258 | 254 |
| 259 if (!repaintContainer && mode & UseTransforms && shouldUseTransformFromConta
iner(0)) { | 255 if (!repaintContainer && mode & UseTransforms && shouldUseTransformFromConta
iner(0)) { |
| 260 TransformationMatrix t; | 256 TransformationMatrix t; |
| 261 getTransformFromContainer(0, LayoutSize(), t); | 257 getTransformFromContainer(0, LayoutSize(), t); |
| (...skipping 729 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 991 return viewWidth(IncludeScrollbars) / scale; | 987 return viewWidth(IncludeScrollbars) / scale; |
| 992 } | 988 } |
| 993 | 989 |
| 994 double RenderView::layoutViewportHeight() const | 990 double RenderView::layoutViewportHeight() const |
| 995 { | 991 { |
| 996 float scale = m_frameView ? m_frameView->frame().pageZoomFactor() : 1; | 992 float scale = m_frameView ? m_frameView->frame().pageZoomFactor() : 1; |
| 997 return viewHeight(IncludeScrollbars) / scale; | 993 return viewHeight(IncludeScrollbars) / scale; |
| 998 } | 994 } |
| 999 | 995 |
| 1000 } // namespace WebCore | 996 } // namespace WebCore |
| OLD | NEW |