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) 2006 Apple Computer, Inc. | 3 * Copyright (C) 2006 Apple Computer, Inc. |
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 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
214 | 214 |
215 // These functions may only be accessed by LayoutStateMaintainer. | 215 // These functions may only be accessed by LayoutStateMaintainer. |
216 bool pushLayoutState(RenderBox* renderer, const LayoutSize& offset, LayoutUn
it pageHeight = 0, bool pageHeightChanged = false, ColumnInfo* colInfo = 0) | 216 bool pushLayoutState(RenderBox* renderer, const LayoutSize& offset, LayoutUn
it pageHeight = 0, bool pageHeightChanged = false, ColumnInfo* colInfo = 0) |
217 { | 217 { |
218 // We push LayoutState even if layoutState is disabled because it stores
layoutDelta too. | 218 // We push LayoutState even if layoutState is disabled because it stores
layoutDelta too. |
219 if (!doingFullRepaint() || m_layoutState->isPaginated() || renderer->has
Columns() || renderer->flowThreadContainingBlock() | 219 if (!doingFullRepaint() || m_layoutState->isPaginated() || renderer->has
Columns() || renderer->flowThreadContainingBlock() |
220 || m_layoutState->lineGrid() || (renderer->style()->lineGrid() != Re
nderStyle::initialLineGrid() && renderer->isBlockFlow()) | 220 || m_layoutState->lineGrid() || (renderer->style()->lineGrid() != Re
nderStyle::initialLineGrid() && renderer->isBlockFlow()) |
221 || (renderer->isRenderBlock() && toRenderBlock(renderer)->exclusionS
hapeInsideInfo()) | 221 || (renderer->isRenderBlock() && toRenderBlock(renderer)->exclusionS
hapeInsideInfo()) |
222 || (m_layoutState->exclusionShapeInsideInfo() && renderer->isRenderB
lock() && !toRenderBlock(renderer)->allowsExclusionShapeInsideInfoSharing()) | 222 || (m_layoutState->exclusionShapeInsideInfo() && renderer->isRenderB
lock() && !toRenderBlock(renderer)->allowsExclusionShapeInsideInfoSharing()) |
223 ) { | 223 ) { |
224 m_layoutState = new (renderArena()) LayoutState(m_layoutState, rende
rer, offset, pageHeight, pageHeightChanged, colInfo); | 224 m_layoutState = new LayoutState(m_layoutState, renderer, offset, pag
eHeight, pageHeightChanged, colInfo); |
225 return true; | 225 return true; |
226 } | 226 } |
227 return false; | 227 return false; |
228 } | 228 } |
229 | 229 |
230 void popLayoutState() | 230 void popLayoutState() |
231 { | 231 { |
232 LayoutState* state = m_layoutState; | 232 LayoutState* state = m_layoutState; |
233 m_layoutState = state->m_next; | 233 m_layoutState = state->m_next; |
234 state->destroy(renderArena()); | 234 state->destroy(); |
235 } | 235 } |
236 | 236 |
237 // Suspends the LayoutState optimization. Used under transforms that cannot
be represented by | 237 // Suspends the LayoutState optimization. Used under transforms that cannot
be represented by |
238 // LayoutState (common in SVG) and when manipulating the render tree during
layout in ways | 238 // LayoutState (common in SVG) and when manipulating the render tree during
layout in ways |
239 // that can trigger repaint of a non-child (e.g. when a list item moves its
list marker around). | 239 // that can trigger repaint of a non-child (e.g. when a list item moves its
list marker around). |
240 // Note that even when disabled, LayoutState is still used to store layoutDe
lta. | 240 // Note that even when disabled, LayoutState is still used to store layoutDe
lta. |
241 // These functions may only be accessed by LayoutStateMaintainer or LayoutSt
ateDisabler. | 241 // These functions may only be accessed by LayoutStateMaintainer or LayoutSt
ateDisabler. |
242 void disableLayoutState() { m_layoutStateDisableCount++; } | 242 void disableLayoutState() { m_layoutStateDisableCount++; } |
243 void enableLayoutState() { ASSERT(m_layoutStateDisableCount > 0); m_layoutSt
ateDisableCount--; } | 243 void enableLayoutState() { ASSERT(m_layoutStateDisableCount > 0); m_layoutSt
ateDisableCount--; } |
244 | 244 |
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
399 RenderObject::FlowThreadState m_flowThreadState; | 399 RenderObject::FlowThreadState m_flowThreadState; |
400 bool m_fragmenting; | 400 bool m_fragmenting; |
401 #ifndef NDEBUG | 401 #ifndef NDEBUG |
402 LayoutState* m_layoutState; | 402 LayoutState* m_layoutState; |
403 #endif | 403 #endif |
404 }; | 404 }; |
405 | 405 |
406 } // namespace WebCore | 406 } // namespace WebCore |
407 | 407 |
408 #endif // RenderView_h | 408 #endif // RenderView_h |
OLD | NEW |