| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
| 4 * (C) 2007 David Smith (catfish.man@gmail.com) | 4 * (C) 2007 David Smith (catfish.man@gmail.com) |
| 5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc.
All rights reserved. | 5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc.
All rights reserved. |
| 6 * Copyright (C) Research In Motion Limited 2010. All rights reserved. | 6 * Copyright (C) Research In Motion Limited 2010. All rights reserved. |
| 7 * | 7 * |
| 8 * This library is free software; you can redistribute it and/or | 8 * This library is free software; you can redistribute it and/or |
| 9 * modify it under the terms of the GNU Library General Public | 9 * modify it under the terms of the GNU Library General Public |
| 10 * License as published by the Free Software Foundation; either | 10 * License as published by the Free Software Foundation; either |
| (...skipping 1909 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1920 } | 1920 } |
| 1921 | 1921 |
| 1922 maxLogicalWidth = std::max(minLogicalWidth, maxLogicalWidth); | 1922 maxLogicalWidth = std::max(minLogicalWidth, maxLogicalWidth); |
| 1923 | 1923 |
| 1924 if (isHTMLMarqueeElement(node()) && toHTMLMarqueeElement(node())->isHorizont
al()) | 1924 if (isHTMLMarqueeElement(node()) && toHTMLMarqueeElement(node())->isHorizont
al()) |
| 1925 minLogicalWidth = LayoutUnit(); | 1925 minLogicalWidth = LayoutUnit(); |
| 1926 | 1926 |
| 1927 if (isTableCell()) { | 1927 if (isTableCell()) { |
| 1928 Length tableCellWidth = toLayoutTableCell(this)->styleOrColLogicalWidth(
); | 1928 Length tableCellWidth = toLayoutTableCell(this)->styleOrColLogicalWidth(
); |
| 1929 if (tableCellWidth.isFixed() && tableCellWidth.value() > 0) | 1929 if (tableCellWidth.isFixed() && tableCellWidth.value() > 0) |
| 1930 maxLogicalWidth = std::max(minLogicalWidth, adjustContentBoxLogicalW
idthForBoxSizing(tableCellWidth.value())); | 1930 maxLogicalWidth = std::max(minLogicalWidth, adjustContentBoxLogicalW
idthForBoxSizing(LayoutUnit(tableCellWidth.value()))); |
| 1931 } | 1931 } |
| 1932 | 1932 |
| 1933 int scrollbarWidth = intrinsicScrollbarLogicalWidth(); | 1933 int scrollbarWidth = intrinsicScrollbarLogicalWidth(); |
| 1934 maxLogicalWidth += scrollbarWidth; | 1934 maxLogicalWidth += scrollbarWidth; |
| 1935 minLogicalWidth += scrollbarWidth; | 1935 minLogicalWidth += scrollbarWidth; |
| 1936 } | 1936 } |
| 1937 | 1937 |
| 1938 void LayoutBlock::computePreferredLogicalWidths() | 1938 void LayoutBlock::computePreferredLogicalWidths() |
| 1939 { | 1939 { |
| 1940 ASSERT(preferredLogicalWidthsDirty()); | 1940 ASSERT(preferredLogicalWidthsDirty()); |
| 1941 | 1941 |
| 1942 m_minPreferredLogicalWidth = LayoutUnit(); | 1942 m_minPreferredLogicalWidth = LayoutUnit(); |
| 1943 m_maxPreferredLogicalWidth = LayoutUnit(); | 1943 m_maxPreferredLogicalWidth = LayoutUnit(); |
| 1944 | 1944 |
| 1945 // FIXME: The isFixed() calls here should probably be checking for isSpecifi
ed since you | 1945 // FIXME: The isFixed() calls here should probably be checking for isSpecifi
ed since you |
| 1946 // should be able to use percentage, calc or viewport relative values for wi
dth. | 1946 // should be able to use percentage, calc or viewport relative values for wi
dth. |
| 1947 const ComputedStyle& styleToUse = styleRef(); | 1947 const ComputedStyle& styleToUse = styleRef(); |
| 1948 if (!isTableCell() && styleToUse.logicalWidth().isFixed() && styleToUse.logi
calWidth().value() >= 0 | 1948 if (!isTableCell() && styleToUse.logicalWidth().isFixed() && styleToUse.logi
calWidth().value() >= 0 |
| 1949 && !(isDeprecatedFlexItem() && !styleToUse.logicalWidth().intValue())) | 1949 && !(isDeprecatedFlexItem() && !styleToUse.logicalWidth().intValue())) |
| 1950 m_minPreferredLogicalWidth = m_maxPreferredLogicalWidth = adjustContentB
oxLogicalWidthForBoxSizing(styleToUse.logicalWidth().value()); | 1950 m_minPreferredLogicalWidth = m_maxPreferredLogicalWidth = adjustContentB
oxLogicalWidthForBoxSizing(LayoutUnit(styleToUse.logicalWidth().value())); |
| 1951 else | 1951 else |
| 1952 computeIntrinsicLogicalWidths(m_minPreferredLogicalWidth, m_maxPreferred
LogicalWidth); | 1952 computeIntrinsicLogicalWidths(m_minPreferredLogicalWidth, m_maxPreferred
LogicalWidth); |
| 1953 | 1953 |
| 1954 if (styleToUse.logicalMinWidth().isFixed() && styleToUse.logicalMinWidth().v
alue() > 0) { | 1954 if (styleToUse.logicalMinWidth().isFixed() && styleToUse.logicalMinWidth().v
alue() > 0) { |
| 1955 m_maxPreferredLogicalWidth = std::max(m_maxPreferredLogicalWidth, adjust
ContentBoxLogicalWidthForBoxSizing(styleToUse.logicalMinWidth().value())); | 1955 m_maxPreferredLogicalWidth = std::max(m_maxPreferredLogicalWidth, adjust
ContentBoxLogicalWidthForBoxSizing(LayoutUnit(styleToUse.logicalMinWidth().value
()))); |
| 1956 m_minPreferredLogicalWidth = std::max(m_minPreferredLogicalWidth, adjust
ContentBoxLogicalWidthForBoxSizing(styleToUse.logicalMinWidth().value())); | 1956 m_minPreferredLogicalWidth = std::max(m_minPreferredLogicalWidth, adjust
ContentBoxLogicalWidthForBoxSizing(LayoutUnit(styleToUse.logicalMinWidth().value
()))); |
| 1957 } | 1957 } |
| 1958 | 1958 |
| 1959 if (styleToUse.logicalMaxWidth().isFixed()) { | 1959 if (styleToUse.logicalMaxWidth().isFixed()) { |
| 1960 m_maxPreferredLogicalWidth = std::min(m_maxPreferredLogicalWidth, adjust
ContentBoxLogicalWidthForBoxSizing(styleToUse.logicalMaxWidth().value())); | 1960 m_maxPreferredLogicalWidth = std::min(m_maxPreferredLogicalWidth, adjust
ContentBoxLogicalWidthForBoxSizing(LayoutUnit(styleToUse.logicalMaxWidth().value
()))); |
| 1961 m_minPreferredLogicalWidth = std::min(m_minPreferredLogicalWidth, adjust
ContentBoxLogicalWidthForBoxSizing(styleToUse.logicalMaxWidth().value())); | 1961 m_minPreferredLogicalWidth = std::min(m_minPreferredLogicalWidth, adjust
ContentBoxLogicalWidthForBoxSizing(LayoutUnit(styleToUse.logicalMaxWidth().value
()))); |
| 1962 } | 1962 } |
| 1963 | 1963 |
| 1964 // Table layout uses integers, ceil the preferred widths to ensure that they
can contain the contents. | 1964 // Table layout uses integers, ceil the preferred widths to ensure that they
can contain the contents. |
| 1965 if (isTableCell()) { | 1965 if (isTableCell()) { |
| 1966 m_minPreferredLogicalWidth = LayoutUnit(m_minPreferredLogicalWidth.ceil(
)); | 1966 m_minPreferredLogicalWidth = LayoutUnit(m_minPreferredLogicalWidth.ceil(
)); |
| 1967 m_maxPreferredLogicalWidth = LayoutUnit(m_maxPreferredLogicalWidth.ceil(
)); | 1967 m_maxPreferredLogicalWidth = LayoutUnit(m_maxPreferredLogicalWidth.ceil(
)); |
| 1968 } | 1968 } |
| 1969 | 1969 |
| 1970 LayoutUnit borderAndPadding = borderAndPaddingLogicalWidth(); | 1970 LayoutUnit borderAndPadding = borderAndPaddingLogicalWidth(); |
| 1971 m_minPreferredLogicalWidth += borderAndPadding; | 1971 m_minPreferredLogicalWidth += borderAndPadding; |
| (...skipping 886 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2858 void LayoutBlock::showLineTreeAndMark(const InlineBox* markedBox1, const char* m
arkedLabel1, const InlineBox* markedBox2, const char* markedLabel2, const Layout
Object* obj) const | 2858 void LayoutBlock::showLineTreeAndMark(const InlineBox* markedBox1, const char* m
arkedLabel1, const InlineBox* markedBox2, const char* markedLabel2, const Layout
Object* obj) const |
| 2859 { | 2859 { |
| 2860 showLayoutObject(); | 2860 showLayoutObject(); |
| 2861 for (const RootInlineBox* root = firstRootBox(); root; root = root->nextRoot
Box()) | 2861 for (const RootInlineBox* root = firstRootBox(); root; root = root->nextRoot
Box()) |
| 2862 root->showLineTreeAndMark(markedBox1, markedLabel1, markedBox2, markedLa
bel2, obj, 1); | 2862 root->showLineTreeAndMark(markedBox1, markedLabel1, markedBox2, markedLa
bel2, obj, 1); |
| 2863 } | 2863 } |
| 2864 | 2864 |
| 2865 #endif | 2865 #endif |
| 2866 | 2866 |
| 2867 } // namespace blink | 2867 } // namespace blink |
| OLD | NEW |