OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google 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 are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 3614 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3625 // The float cannot start above the top position of the last positioned float. | 3625 // The float cannot start above the top position of the last positioned float. |
3626 if (lastPlacedFloatingObject) | 3626 if (lastPlacedFloatingObject) |
3627 logicalTop = | 3627 logicalTop = |
3628 std::max(logicalTopForFloat(*lastPlacedFloatingObject), logicalTop); | 3628 std::max(logicalTopForFloat(*lastPlacedFloatingObject), logicalTop); |
3629 | 3629 |
3630 FloatingObjectSetIterator end = floatingObjectSet.end(); | 3630 FloatingObjectSetIterator end = floatingObjectSet.end(); |
3631 // Now walk through the set of unpositioned floats and place them. | 3631 // Now walk through the set of unpositioned floats and place them. |
3632 for (; it != end; ++it) { | 3632 for (; it != end; ++it) { |
3633 FloatingObject& floatingObject = *it->get(); | 3633 FloatingObject& floatingObject = *it->get(); |
3634 // The containing block is responsible for positioning floats, so if we have | 3634 // The containing block is responsible for positioning floats, so if we have |
3635 // floats in our list that come from somewhere else, do not attempt to | 3635 // unplaced floats in our list that come from somewhere else, we have a bug. |
3636 // position them. | 3636 DCHECK_EQ(floatingObject.layoutObject()->containingBlock(), this); |
3637 if (floatingObject.layoutObject()->containingBlock() != this) | |
3638 continue; | |
3639 | 3637 |
3640 LayoutBox* childBox = floatingObject.layoutObject(); | 3638 LayoutBox* childBox = floatingObject.layoutObject(); |
3641 | 3639 |
3642 // FIXME Investigate if this can be removed. crbug.com/370006 | 3640 // FIXME Investigate if this can be removed. crbug.com/370006 |
3643 childBox->setMayNeedPaintInvalidation(); | 3641 childBox->setMayNeedPaintInvalidation(); |
3644 | 3642 |
3645 LayoutUnit childLogicalLeftMargin = style()->isLeftToRightDirection() | 3643 LayoutUnit childLogicalLeftMargin = style()->isLeftToRightDirection() |
3646 ? marginStartForChild(*childBox) | 3644 ? marginStartForChild(*childBox) |
3647 : marginEndForChild(*childBox); | 3645 : marginEndForChild(*childBox); |
3648 if (childBox->style()->clear() & ClearLeft) | 3646 if (childBox->style()->clear() & ClearLeft) |
(...skipping 917 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4566 return LayoutBlock::invalidatePaintIfNeeded(paintInvalidationState); | 4564 return LayoutBlock::invalidatePaintIfNeeded(paintInvalidationState); |
4567 } | 4565 } |
4568 | 4566 |
4569 void LayoutBlockFlow::invalidateDisplayItemClients( | 4567 void LayoutBlockFlow::invalidateDisplayItemClients( |
4570 PaintInvalidationReason invalidationReason) const { | 4568 PaintInvalidationReason invalidationReason) const { |
4571 BlockFlowPaintInvalidator(*this).invalidateDisplayItemClients( | 4569 BlockFlowPaintInvalidator(*this).invalidateDisplayItemClients( |
4572 invalidationReason); | 4570 invalidationReason); |
4573 } | 4571 } |
4574 | 4572 |
4575 } // namespace blink | 4573 } // namespace blink |
OLD | NEW |