Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(111)

Side by Side Diff: third_party/WebKit/Source/core/layout/LayoutMultiColumnFlowThread.h

Issue 2231383002: Need to roll back the multicol machinery state when re-laying out a block child. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2012 Apple Inc. All rights reserved. 2 * Copyright (C) 2012 Apple Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after
256 void willBeRemovedFromTree() override; 256 void willBeRemovedFromTree() override;
257 void flowThreadDescendantWasInserted(LayoutObject*) final; 257 void flowThreadDescendantWasInserted(LayoutObject*) final;
258 void flowThreadDescendantWillBeRemoved(LayoutObject*) final; 258 void flowThreadDescendantWillBeRemoved(LayoutObject*) final;
259 void flowThreadDescendantStyleWillChange(LayoutBox*, StyleDifference, const ComputedStyle& newStyle) override; 259 void flowThreadDescendantStyleWillChange(LayoutBox*, StyleDifference, const ComputedStyle& newStyle) override;
260 void flowThreadDescendantStyleDidChange(LayoutBox*, StyleDifference, const C omputedStyle& oldStyle) override; 260 void flowThreadDescendantStyleDidChange(LayoutBox*, StyleDifference, const C omputedStyle& oldStyle) override;
261 void computePreferredLogicalWidths() override; 261 void computePreferredLogicalWidths() override;
262 void computeLogicalHeight(LayoutUnit logicalHeight, LayoutUnit logicalTop, L ogicalExtentComputedValues&) const override; 262 void computeLogicalHeight(LayoutUnit logicalHeight, LayoutUnit logicalTop, L ogicalExtentComputedValues&) const override;
263 void updateLogicalWidth() override; 263 void updateLogicalWidth() override;
264 void contentWasLaidOut(LayoutUnit logicalBottomInFlowThreadAfterPagination) override; 264 void contentWasLaidOut(LayoutUnit logicalBottomInFlowThreadAfterPagination) override;
265 bool canSkipLayout(const LayoutBox&) const override; 265 bool canSkipLayout(const LayoutBox&) const override;
266 MultiColumnLayoutState multiColumnLayoutState() const override;
267 void restoreMultiColumnLayoutState(const MultiColumnLayoutState&) override;
266 268
267 // The last set we worked on. It's not to be used as the "current set". The concept of a 269 // The last set we worked on. It's not to be used as the "current set". The concept of a
268 // "current set" is difficult, since layout may jump back and forth in the t ree, due to wrong 270 // "current set" is difficult, since layout may jump back and forth in the t ree, due to wrong
269 // top location estimates (due to e.g. margin collapsing), and possibly for other reasons. 271 // top location estimates (due to e.g. margin collapsing), and possibly for other reasons.
270 LayoutMultiColumnSet* m_lastSetWorkedOn; 272 LayoutMultiColumnSet* m_lastSetWorkedOn;
271 273
272 unsigned m_columnCount; // The used value of column-count 274 unsigned m_columnCount; // The used value of column-count
273 LayoutUnit m_columnHeightAvailable; // Total height available to columns, or 0 if auto. 275 LayoutUnit m_columnHeightAvailable; // Total height available to columns, or 0 if auto.
274 276
275 // Cached block offset from this flow thread to the enclosing fragmentation context, if any. In 277 // Cached block offset from this flow thread to the enclosing fragmentation context, if any. In
276 // the coordinate space of the enclosing fragmentation context. 278 // the coordinate space of the enclosing fragmentation context.
277 LayoutUnit m_blockOffsetInEnclosingFragmentationContext; 279 LayoutUnit m_blockOffsetInEnclosingFragmentationContext;
278 280
279 bool m_columnHeightsChanged; // Set when column heights are out of sync with actual layout. 281 bool m_columnHeightsChanged; // Set when column heights are out of sync with actual layout.
280 bool m_progressionIsInline; // Always true for regular multicol. False for p aged-y overflow. 282 bool m_progressionIsInline; // Always true for regular multicol. False for p aged-y overflow.
281 bool m_isBeingEvacuated; 283 bool m_isBeingEvacuated;
282 }; 284 };
283 285
284 // Cannot use DEFINE_LAYOUT_OBJECT_TYPE_CASTS here, because isMultiColumnFlowThr ead() is defined in 286 // Cannot use DEFINE_LAYOUT_OBJECT_TYPE_CASTS here, because isMultiColumnFlowThr ead() is defined in
285 // LayoutFlowThread, not in LayoutObject. 287 // LayoutFlowThread, not in LayoutObject.
286 DEFINE_TYPE_CASTS(LayoutMultiColumnFlowThread, LayoutFlowThread, object, object- >isLayoutMultiColumnFlowThread(), object.isLayoutMultiColumnFlowThread()); 288 DEFINE_TYPE_CASTS(LayoutMultiColumnFlowThread, LayoutFlowThread, object, object- >isLayoutMultiColumnFlowThread(), object.isLayoutMultiColumnFlowThread());
287 289
288 } // namespace blink 290 } // namespace blink
289 291
290 #endif // LayoutMultiColumnFlowThread_h 292 #endif // LayoutMultiColumnFlowThread_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698