| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org> | 2 * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org> |
| 3 * 1999 Lars Knoll <knoll@kde.org> | 3 * 1999 Lars Knoll <knoll@kde.org> |
| 4 * 1999 Antti Koivisto <koivisto@kde.org> | 4 * 1999 Antti Koivisto <koivisto@kde.org> |
| 5 * 2000 Dirk Mueller <mueller@kde.org> | 5 * 2000 Dirk Mueller <mueller@kde.org> |
| 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. | 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. |
| 7 * (C) 2006 Graham Dennis (graham.dennis@gmail.com) | 7 * (C) 2006 Graham Dennis (graham.dennis@gmail.com) |
| 8 * (C) 2006 Alexey Proskuryakov (ap@nypop.com) | 8 * (C) 2006 Alexey Proskuryakov (ap@nypop.com) |
| 9 * Copyright (C) 2009 Google Inc. All rights reserved. | 9 * Copyright (C) 2009 Google Inc. All rights reserved. |
| 10 * | 10 * |
| (...skipping 973 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 984 // do a full tree walk. | 984 // do a full tree walk. |
| 985 if (RenderObject* container = rootForThisLayout->container()) | 985 if (RenderObject* container = rootForThisLayout->container()) |
| 986 container->setMayNeedPaintInvalidation(true); | 986 container->setMayNeedPaintInvalidation(true); |
| 987 } // Reset m_layoutSchedulingEnabled to its previous value. | 987 } // Reset m_layoutSchedulingEnabled to its previous value. |
| 988 | 988 |
| 989 if (!inSubtreeLayout && !toRenderView(rootForThisLayout)->document().printin
g()) | 989 if (!inSubtreeLayout && !toRenderView(rootForThisLayout)->document().printin
g()) |
| 990 adjustViewSize(); | 990 adjustViewSize(); |
| 991 | 991 |
| 992 layer->updateLayerPositionsAfterLayout(); | 992 layer->updateLayerPositionsAfterLayout(); |
| 993 | 993 |
| 994 if (m_doFullPaintInvalidation) | |
| 995 renderView()->compositor()->fullyInvalidatePaint(); | |
| 996 renderView()->compositor()->didLayout(); | 994 renderView()->compositor()->didLayout(); |
| 997 | 995 |
| 998 m_layoutCount++; | 996 m_layoutCount++; |
| 999 | 997 |
| 1000 if (AXObjectCache* cache = rootForThisLayout->document().axObjectCache()) { | 998 if (AXObjectCache* cache = rootForThisLayout->document().axObjectCache()) { |
| 1001 const KURL& url = rootForThisLayout->document().url(); | 999 const KURL& url = rootForThisLayout->document().url(); |
| 1002 if (url.isValid() && !url.isAboutBlankURL()) | 1000 if (url.isValid() && !url.isAboutBlankURL()) |
| 1003 cache->handleLayoutComplete(rootForThisLayout); | 1001 cache->handleLayoutComplete(rootForThisLayout); |
| 1004 } | 1002 } |
| 1005 updateAnnotatedRegions(); | 1003 updateAnnotatedRegions(); |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1041 void FrameView::invalidateTreeIfNeeded() | 1039 void FrameView::invalidateTreeIfNeeded() |
| 1042 { | 1040 { |
| 1043 ASSERT(renderView()); | 1041 ASSERT(renderView()); |
| 1044 RenderView& rootForPaintInvalidation = *renderView(); | 1042 RenderView& rootForPaintInvalidation = *renderView(); |
| 1045 ASSERT(!rootForPaintInvalidation.needsLayout()); | 1043 ASSERT(!rootForPaintInvalidation.needsLayout()); |
| 1046 | 1044 |
| 1047 TRACE_EVENT1("blink", "FrameView::invalidateTree", "root", rootForPaintInval
idation.debugName().ascii()); | 1045 TRACE_EVENT1("blink", "FrameView::invalidateTree", "root", rootForPaintInval
idation.debugName().ascii()); |
| 1048 | 1046 |
| 1049 PaintInvalidationState rootPaintInvalidationState(rootForPaintInvalidation); | 1047 PaintInvalidationState rootPaintInvalidationState(rootForPaintInvalidation); |
| 1050 | 1048 |
| 1049 if (m_doFullPaintInvalidation) |
| 1050 renderView()->compositor()->fullyInvalidatePaint(); |
| 1051 |
| 1051 rootForPaintInvalidation.invalidateTreeIfNeeded(rootPaintInvalidationState); | 1052 rootForPaintInvalidation.invalidateTreeIfNeeded(rootPaintInvalidationState); |
| 1052 | 1053 |
| 1053 // Invalidate the paint of the frameviews scrollbars if needed | 1054 // Invalidate the paint of the frameviews scrollbars if needed |
| 1054 if (hasVerticalBarDamage()) | 1055 if (hasVerticalBarDamage()) |
| 1055 invalidateRect(verticalBarDamage()); | 1056 invalidateRect(verticalBarDamage()); |
| 1056 if (hasHorizontalBarDamage()) | 1057 if (hasHorizontalBarDamage()) |
| 1057 invalidateRect(horizontalBarDamage()); | 1058 invalidateRect(horizontalBarDamage()); |
| 1058 resetScrollbarDamage(); | 1059 resetScrollbarDamage(); |
| 1059 | 1060 |
| 1060 m_doFullPaintInvalidation = false; | 1061 |
| 1061 #ifndef NDEBUG | 1062 #ifndef NDEBUG |
| 1062 renderView()->assertSubtreeClearedPaintInvalidationState(); | 1063 renderView()->assertSubtreeClearedPaintInvalidationState(); |
| 1063 #endif | 1064 #endif |
| 1064 | 1065 |
| 1065 if (m_frame->selection().isCaretBoundsDirty()) | 1066 if (m_frame->selection().isCaretBoundsDirty()) |
| 1066 m_frame->selection().invalidateCaretRect(); | 1067 m_frame->selection().invalidateCaretRect(); |
| 1067 } | 1068 } |
| 1068 | 1069 |
| 1069 DocumentLifecycle& FrameView::lifecycle() const | 1070 DocumentLifecycle& FrameView::lifecycle() const |
| 1070 { | 1071 { |
| (...skipping 636 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1707 if (!frame().view()) | 1708 if (!frame().view()) |
| 1708 return; | 1709 return; |
| 1709 | 1710 |
| 1710 // Note that simply having overlay scrollbars is not sufficient to be | 1711 // Note that simply having overlay scrollbars is not sufficient to be |
| 1711 // certain that scrollbars' presence does not impact layout. This should | 1712 // certain that scrollbars' presence does not impact layout. This should |
| 1712 // also check if custom scrollbars (as reported by shouldUseCustomScrollbars
) | 1713 // also check if custom scrollbars (as reported by shouldUseCustomScrollbars
) |
| 1713 // are in use as well. | 1714 // are in use as well. |
| 1714 // http://crbug.com/269692 | 1715 // http://crbug.com/269692 |
| 1715 bool useOverlayScrollbars = ScrollbarTheme::theme()->usesOverlayScrollbars()
; | 1716 bool useOverlayScrollbars = ScrollbarTheme::theme()->usesOverlayScrollbars()
; |
| 1716 | 1717 |
| 1718 // FIXME: this call to layout() could be called within FrameView::layout(),
but before performLayout(), |
| 1719 // causing double-layout. See also crbug.com/429242. |
| 1717 if (!useOverlayScrollbars && needsLayout()) | 1720 if (!useOverlayScrollbars && needsLayout()) |
| 1718 layout(); | 1721 layout(); |
| 1719 | 1722 |
| 1720 if (renderView() && renderView()->usesCompositing()) { | 1723 if (renderView() && renderView()->usesCompositing()) { |
| 1721 renderView()->compositor()->frameViewScrollbarsExistenceDidChange(); | 1724 renderView()->compositor()->frameViewScrollbarsExistenceDidChange(); |
| 1722 | 1725 |
| 1723 if (!useOverlayScrollbars) | 1726 if (!useOverlayScrollbars) |
| 1724 renderView()->compositor()->frameViewDidChangeSize(); | 1727 renderView()->compositor()->frameViewDidChangeSize(); |
| 1725 } | 1728 } |
| 1726 } | 1729 } |
| (...skipping 865 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2592 lifecycle().advanceTo(DocumentLifecycle::InPaintInvalidation); | 2595 lifecycle().advanceTo(DocumentLifecycle::InPaintInvalidation); |
| 2593 invalidateTreeIfNeeded(); | 2596 invalidateTreeIfNeeded(); |
| 2594 lifecycle().advanceTo(DocumentLifecycle::PaintInvalidationClean); | 2597 lifecycle().advanceTo(DocumentLifecycle::PaintInvalidationClean); |
| 2595 | 2598 |
| 2596 for (Frame* child = m_frame->tree().firstChild(); child; child = child->tree
().nextSibling()) { | 2599 for (Frame* child = m_frame->tree().firstChild(); child; child = child->tree
().nextSibling()) { |
| 2597 if (!child->isLocalFrame()) | 2600 if (!child->isLocalFrame()) |
| 2598 continue; | 2601 continue; |
| 2599 | 2602 |
| 2600 toLocalFrame(child)->view()->invalidateTreeIfNeededRecursive(); | 2603 toLocalFrame(child)->view()->invalidateTreeIfNeededRecursive(); |
| 2601 } | 2604 } |
| 2605 |
| 2606 m_doFullPaintInvalidation = false; |
| 2602 } | 2607 } |
| 2603 | 2608 |
| 2604 void FrameView::enableAutoSizeMode(const IntSize& minSize, const IntSize& maxSiz
e) | 2609 void FrameView::enableAutoSizeMode(const IntSize& minSize, const IntSize& maxSiz
e) |
| 2605 { | 2610 { |
| 2606 if (!m_autoSizeInfo) | 2611 if (!m_autoSizeInfo) |
| 2607 m_autoSizeInfo = FrameViewAutoSizeInfo::create(this); | 2612 m_autoSizeInfo = FrameViewAutoSizeInfo::create(this); |
| 2608 | 2613 |
| 2609 m_autoSizeInfo->configureAutoSizeMode(minSize, maxSize); | 2614 m_autoSizeInfo->configureAutoSizeMode(minSize, maxSize); |
| 2610 setLayoutSizeFixedToFrameSize(true); | 2615 setLayoutSizeFixedToFrameSize(true); |
| 2611 setNeedsLayout(); | 2616 setNeedsLayout(); |
| (...skipping 1317 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3929 return; | 3934 return; |
| 3930 | 3935 |
| 3931 ScrollableArea::setScrollOrigin(origin); | 3936 ScrollableArea::setScrollOrigin(origin); |
| 3932 | 3937 |
| 3933 // Update if the scroll origin changes, since our position will be different
if the content size did not change. | 3938 // Update if the scroll origin changes, since our position will be different
if the content size did not change. |
| 3934 if (updatePositionAtAll && updatePositionSynchronously) | 3939 if (updatePositionAtAll && updatePositionSynchronously) |
| 3935 updateScrollbars(scrollOffsetDouble()); | 3940 updateScrollbars(scrollOffsetDouble()); |
| 3936 } | 3941 } |
| 3937 | 3942 |
| 3938 } // namespace blink | 3943 } // namespace blink |
| OLD | NEW |