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 2809 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2820 LayoutBoxModelObject* continuation = this->Continuation(); | 2820 LayoutBoxModelObject* continuation = this->Continuation(); |
2821 if (continuation) { | 2821 if (continuation) { |
2822 continuation->Destroy(); | 2822 continuation->Destroy(); |
2823 SetContinuation(nullptr); | 2823 SetContinuation(nullptr); |
2824 } | 2824 } |
2825 | 2825 |
2826 if (!DocumentBeingDestroyed()) { | 2826 if (!DocumentBeingDestroyed()) { |
2827 // TODO(mstensho): figure out if we need this. We have no test coverage for | 2827 // TODO(mstensho): figure out if we need this. We have no test coverage for |
2828 // it. It looks like all line boxes have been removed at this point. | 2828 // it. It looks like all line boxes have been removed at this point. |
2829 if (FirstLineBox()) { | 2829 if (FirstLineBox()) { |
2830 // We can't wait for LayoutBox::destroy to clear the selection, | |
2831 // because by then we will have nuked the line boxes. | |
2832 // FIXME: The FrameSelection should be responsible for this when it | |
2833 // is notified of DOM mutations. | |
2834 if (IsSelectionBorder()) | |
2835 View()->ClearSelection(); | |
2836 | |
2837 // If we are an anonymous block, then our line boxes might have children | 2830 // If we are an anonymous block, then our line boxes might have children |
2838 // that will outlast this block. In the non-anonymous block case those | 2831 // that will outlast this block. In the non-anonymous block case those |
2839 // children will be destroyed by the time we return from this function. | 2832 // children will be destroyed by the time we return from this function. |
2840 if (IsAnonymousBlock()) { | 2833 if (IsAnonymousBlock()) { |
2841 for (InlineFlowBox* box = FirstLineBox(); box; | 2834 for (InlineFlowBox* box = FirstLineBox(); box; |
2842 box = box->NextLineBox()) { | 2835 box = box->NextLineBox()) { |
2843 while (InlineBox* child_box = box->FirstChild()) | 2836 while (InlineBox* child_box = box->FirstChild()) |
2844 child_box->Remove(); | 2837 child_box->Remove(); |
2845 } | 2838 } |
2846 } | 2839 } |
(...skipping 1815 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4662 return LayoutBlock::InvalidatePaintIfNeeded(paint_invalidation_state); | 4655 return LayoutBlock::InvalidatePaintIfNeeded(paint_invalidation_state); |
4663 } | 4656 } |
4664 | 4657 |
4665 void LayoutBlockFlow::InvalidateDisplayItemClients( | 4658 void LayoutBlockFlow::InvalidateDisplayItemClients( |
4666 PaintInvalidationReason invalidation_reason) const { | 4659 PaintInvalidationReason invalidation_reason) const { |
4667 BlockFlowPaintInvalidator(*this).InvalidateDisplayItemClients( | 4660 BlockFlowPaintInvalidator(*this).InvalidateDisplayItemClients( |
4668 invalidation_reason); | 4661 invalidation_reason); |
4669 } | 4662 } |
4670 | 4663 |
4671 } // namespace blink | 4664 } // namespace blink |
OLD | NEW |