OLD | NEW |
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 844 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
855 // laid out inside the columns. In order to eventually end up with the desir
ed column width, | 855 // laid out inside the columns. In order to eventually end up with the desir
ed column width, |
856 // we need to convert them to values pertaining to the multicol container. | 856 // we need to convert them to values pertaining to the multicol container. |
857 const LayoutBlockFlow* multicolContainer = multiColumnBlockFlow(); | 857 const LayoutBlockFlow* multicolContainer = multiColumnBlockFlow(); |
858 const ComputedStyle* multicolStyle = multicolContainer->style(); | 858 const ComputedStyle* multicolStyle = multicolContainer->style(); |
859 int columnCount = multicolStyle->hasAutoColumnCount() ? 1 : multicolStyle->c
olumnCount(); | 859 int columnCount = multicolStyle->hasAutoColumnCount() ? 1 : multicolStyle->c
olumnCount(); |
860 LayoutUnit columnWidth; | 860 LayoutUnit columnWidth; |
861 LayoutUnit gapExtra = LayoutUnit((columnCount - 1) * multicolContainer->colu
mnGap()); | 861 LayoutUnit gapExtra = LayoutUnit((columnCount - 1) * multicolContainer->colu
mnGap()); |
862 if (multicolStyle->hasAutoColumnWidth()) { | 862 if (multicolStyle->hasAutoColumnWidth()) { |
863 m_minPreferredLogicalWidth = m_minPreferredLogicalWidth * columnCount +
gapExtra; | 863 m_minPreferredLogicalWidth = m_minPreferredLogicalWidth * columnCount +
gapExtra; |
864 } else { | 864 } else { |
865 columnWidth = multicolStyle->columnWidth(); | 865 columnWidth = LayoutUnit(multicolStyle->columnWidth()); |
866 m_minPreferredLogicalWidth = std::min(m_minPreferredLogicalWidth, column
Width); | 866 m_minPreferredLogicalWidth = std::min(m_minPreferredLogicalWidth, column
Width); |
867 } | 867 } |
868 // Note that if column-count is auto here, we should resolve it to calculate
the maximum | 868 // Note that if column-count is auto here, we should resolve it to calculate
the maximum |
869 // intrinsic width, instead of pretending that it's 1. The only way to do th
at is by performing | 869 // intrinsic width, instead of pretending that it's 1. The only way to do th
at is by performing |
870 // a layout pass, but this is not an appropriate time or place for layout. T
he good news is that | 870 // a layout pass, but this is not an appropriate time or place for layout. T
he good news is that |
871 // if height is unconstrained and there are no explicit breaks, the resolved
column-count really | 871 // if height is unconstrained and there are no explicit breaks, the resolved
column-count really |
872 // should be 1. | 872 // should be 1. |
873 m_maxPreferredLogicalWidth = std::max(m_maxPreferredLogicalWidth, columnWidt
h) * columnCount + gapExtra; | 873 m_maxPreferredLogicalWidth = std::max(m_maxPreferredLogicalWidth, columnWidt
h) * columnCount + gapExtra; |
874 } | 874 } |
875 | 875 |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
925 // the "mayBe"), if we're in an out-of-flow subtree and have an outer multic
ol container that | 925 // the "mayBe"), if we're in an out-of-flow subtree and have an outer multic
ol container that |
926 // doesn't affect us, but that's okay. We'll discover that further down the
road when trying to | 926 // doesn't affect us, but that's okay. We'll discover that further down the
road when trying to |
927 // locate our enclosing flow thread for real. | 927 // locate our enclosing flow thread for real. |
928 bool mayBeNested = multiColumnBlockFlow()->isInsideFlowThread() || view()->f
ragmentationContext(); | 928 bool mayBeNested = multiColumnBlockFlow()->isInsideFlowThread() || view()->f
ragmentationContext(); |
929 if (!mayBeNested) | 929 if (!mayBeNested) |
930 return; | 930 return; |
931 appendNewFragmentainerGroupIfNeeded(logicalBottomInFlowThreadAfterPagination
); | 931 appendNewFragmentainerGroupIfNeeded(logicalBottomInFlowThreadAfterPagination
); |
932 } | 932 } |
933 | 933 |
934 } // namespace blink | 934 } // namespace blink |
OLD | NEW |