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

Unified Diff: third_party/WebKit/Source/core/layout/ColumnBalancer.cpp

Issue 1471403002: Look inside inner nested multicols to calculate minimum space shortage. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/layout/ColumnBalancer.cpp
diff --git a/third_party/WebKit/Source/core/layout/ColumnBalancer.cpp b/third_party/WebKit/Source/core/layout/ColumnBalancer.cpp
index 3de1e264d6c82d0d4b2cccf9a02f19e79ed3eb83..ffabb59fe7cd7ae8e63a0171016ee8bd4d6701a0 100644
--- a/third_party/WebKit/Source/core/layout/ColumnBalancer.cpp
+++ b/third_party/WebKit/Source/core/layout/ColumnBalancer.cpp
@@ -6,6 +6,7 @@
#include "core/layout/ColumnBalancer.h"
+#include "core/layout/LayoutMultiColumnFlowThread.h"
#include "core/layout/LayoutMultiColumnSet.h"
namespace blink {
@@ -273,6 +274,19 @@ void MinimumSpaceShortageFinder::examineBoxAfterEntering(const LayoutBox& box)
recordSpaceShortage(spaceUsedInLastColumn);
}
}
+
+ // If this is an inner multicol container, look for space shortage inside it.
+ if (!box.isLayoutBlockFlow())
+ return;
+ LayoutMultiColumnFlowThread* flowThread = toLayoutBlockFlow(box).multiColumnFlowThread();
+ if (!flowThread)
+ return;
+ for (const LayoutMultiColumnSet* columnSet = flowThread->firstMultiColumnSet(); columnSet; columnSet = columnSet->nextSiblingMultiColumnSet()) {
+ for (const MultiColumnFragmentainerGroup& row : columnSet->fragmentainerGroups()) {
+ MinimumSpaceShortageFinder innerFinder(row);
+ recordSpaceShortage(innerFinder.minimumSpaceShortage());
+ }
+ }
}
void MinimumSpaceShortageFinder::examineBoxBeforeLeaving(const LayoutBox& box)

Powered by Google App Engine
This is Rietveld 408576698