Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(76)

Side by Side Diff: Source/core/frame/FrameView.cpp

Issue 280633002: Rename RenderObject::setNeedsLayout to setNeedsLayoutAndFullRepaint (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebase Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « Source/core/dom/Element.cpp ('k') | Source/core/html/HTMLFrameSetElement.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 721 matching lines...) Expand 10 before | Expand all | Expand 10 after
732 // If the embedded SVG document appears the first time, the ownerRenderer ha s already finished 732 // If the embedded SVG document appears the first time, the ownerRenderer ha s already finished
733 // layout without knowing about the existence of the embedded SVG document, because RenderReplaced 733 // layout without knowing about the existence of the embedded SVG document, because RenderReplaced
734 // embeddedContentBox() returns 0, as long as the embedded document isn't lo aded yet. Before 734 // embeddedContentBox() returns 0, as long as the embedded document isn't lo aded yet. Before
735 // bothering to lay out the SVG document, mark the ownerRenderer needing lay out and ask its 735 // bothering to lay out the SVG document, mark the ownerRenderer needing lay out and ask its
736 // FrameView for a layout. After that the RenderEmbeddedObject (ownerRendere r) carries the 736 // FrameView for a layout. After that the RenderEmbeddedObject (ownerRendere r) carries the
737 // correct size, which RenderSVGRoot::computeReplacedLogicalWidth/Height rel y on, when laying 737 // correct size, which RenderSVGRoot::computeReplacedLogicalWidth/Height rel y on, when laying
738 // out for the first time, or when the RenderSVGRoot size has changed dynami cally (eg. via <script>). 738 // out for the first time, or when the RenderSVGRoot size has changed dynami cally (eg. via <script>).
739 RefPtr<FrameView> frameView = ownerRenderer->frame()->view(); 739 RefPtr<FrameView> frameView = ownerRenderer->frame()->view();
740 740
741 // Mark the owner renderer as needing layout. 741 // Mark the owner renderer as needing layout.
742 ownerRenderer->setNeedsLayoutAndPrefWidthsRecalc(); 742 ownerRenderer->setNeedsLayoutAndPrefWidthsRecalcAndFullRepaint();
743 743
744 // Synchronously enter layout, to layout the view containing the host object /embed/iframe. 744 // Synchronously enter layout, to layout the view containing the host object /embed/iframe.
745 ASSERT(frameView); 745 ASSERT(frameView);
746 frameView->layout(); 746 frameView->layout();
747 } 747 }
748 748
749 void FrameView::performPreLayoutTasks() 749 void FrameView::performPreLayoutTasks()
750 { 750 {
751 TRACE_EVENT0("webkit", "FrameView::performPreLayoutTasks"); 751 TRACE_EVENT0("webkit", "FrameView::performPreLayoutTasks");
752 lifecycle().advanceTo(DocumentLifecycle::InPreLayout); 752 lifecycle().advanceTo(DocumentLifecycle::InPreLayout);
(...skipping 549 matching lines...) Expand 10 before | Expand all | Expand 10 after
1302 return; 1302 return;
1303 1303
1304 ViewportConstrainedObjectSet::const_iterator end = m_viewportConstrainedObje cts->end(); 1304 ViewportConstrainedObjectSet::const_iterator end = m_viewportConstrainedObje cts->end();
1305 for (ViewportConstrainedObjectSet::const_iterator it = m_viewportConstrained Objects->begin(); it != end; ++it) { 1305 for (ViewportConstrainedObjectSet::const_iterator it = m_viewportConstrained Objects->begin(); it != end; ++it) {
1306 RenderObject* renderer = *it; 1306 RenderObject* renderer = *it;
1307 RenderStyle* style = renderer->style(); 1307 RenderStyle* style = renderer->style();
1308 if (widthChanged) { 1308 if (widthChanged) {
1309 if (style->width().isFixed() && (style->left().isAuto() || style->ri ght().isAuto())) 1309 if (style->width().isFixed() && (style->left().isAuto() || style->ri ght().isAuto()))
1310 renderer->setNeedsPositionedMovementLayout(); 1310 renderer->setNeedsPositionedMovementLayout();
1311 else 1311 else
1312 renderer->setNeedsLayout(); 1312 renderer->setNeedsLayoutAndFullRepaint();
1313 } 1313 }
1314 if (heightChanged) { 1314 if (heightChanged) {
1315 if (style->height().isFixed() && (style->top().isAuto() || style->bo ttom().isAuto())) 1315 if (style->height().isFixed() && (style->top().isAuto() || style->bo ttom().isAuto()))
1316 renderer->setNeedsPositionedMovementLayout(); 1316 renderer->setNeedsPositionedMovementLayout();
1317 else 1317 else
1318 renderer->setNeedsLayout(); 1318 renderer->setNeedsLayoutAndFullRepaint();
1319 } 1319 }
1320 } 1320 }
1321 } 1321 }
1322 1322
1323 bool FrameView::shouldPlaceVerticalScrollbarOnLeft() const 1323 bool FrameView::shouldPlaceVerticalScrollbarOnLeft() const
1324 { 1324 {
1325 // FIXME: Mainframe scrollbar placement should respect the embedding applica tion RTL UI policy. 1325 // FIXME: Mainframe scrollbar placement should respect the embedding applica tion RTL UI policy.
1326 // See crbug.com/249860. 1326 // See crbug.com/249860.
1327 if (m_frame->isMainFrame()) 1327 if (m_frame->isMainFrame())
1328 return false; 1328 return false;
(...skipping 592 matching lines...) Expand 10 before | Expand all | Expand 10 after
1921 1921
1922 RenderView* renderView = this->renderView(); 1922 RenderView* renderView = this->renderView();
1923 return layoutPending() 1923 return layoutPending()
1924 || (renderView && renderView->needsLayout()) 1924 || (renderView && renderView->needsLayout())
1925 || isSubtreeLayout(); 1925 || isSubtreeLayout();
1926 } 1926 }
1927 1927
1928 void FrameView::setNeedsLayout() 1928 void FrameView::setNeedsLayout()
1929 { 1929 {
1930 if (RenderView* renderView = this->renderView()) 1930 if (RenderView* renderView = this->renderView())
1931 renderView->setNeedsLayout(); 1931 renderView->setNeedsLayoutAndFullRepaint();
1932 } 1932 }
1933 1933
1934 bool FrameView::isTransparent() const 1934 bool FrameView::isTransparent() const
1935 { 1935 {
1936 return m_isTransparent; 1936 return m_isTransparent;
1937 } 1937 }
1938 1938
1939 void FrameView::setTransparent(bool isTransparent) 1939 void FrameView::setTransparent(bool isTransparent)
1940 { 1940 {
1941 m_isTransparent = isTransparent; 1941 m_isTransparent = isTransparent;
(...skipping 992 matching lines...) Expand 10 before | Expand all | Expand 10 after
2934 // Dumping externalRepresentation(m_frame->renderer()).ascii() is a good tri ck to see 2934 // Dumping externalRepresentation(m_frame->renderer()).ascii() is a good tri ck to see
2935 // the state of things before and after the layout 2935 // the state of things before and after the layout
2936 if (RenderView* renderView = this->renderView()) { 2936 if (RenderView* renderView = this->renderView()) {
2937 float pageLogicalWidth = renderView->style()->isHorizontalWritingMode() ? pageSize.width() : pageSize.height(); 2937 float pageLogicalWidth = renderView->style()->isHorizontalWritingMode() ? pageSize.width() : pageSize.height();
2938 float pageLogicalHeight = renderView->style()->isHorizontalWritingMode() ? pageSize.height() : pageSize.width(); 2938 float pageLogicalHeight = renderView->style()->isHorizontalWritingMode() ? pageSize.height() : pageSize.width();
2939 2939
2940 LayoutUnit flooredPageLogicalWidth = static_cast<LayoutUnit>(pageLogical Width); 2940 LayoutUnit flooredPageLogicalWidth = static_cast<LayoutUnit>(pageLogical Width);
2941 LayoutUnit flooredPageLogicalHeight = static_cast<LayoutUnit>(pageLogica lHeight); 2941 LayoutUnit flooredPageLogicalHeight = static_cast<LayoutUnit>(pageLogica lHeight);
2942 renderView->setLogicalWidth(flooredPageLogicalWidth); 2942 renderView->setLogicalWidth(flooredPageLogicalWidth);
2943 renderView->setPageLogicalHeight(flooredPageLogicalHeight); 2943 renderView->setPageLogicalHeight(flooredPageLogicalHeight);
2944 renderView->setNeedsLayoutAndPrefWidthsRecalc(); 2944 renderView->setNeedsLayoutAndPrefWidthsRecalcAndFullRepaint();
2945 forceLayout(); 2945 forceLayout();
2946 2946
2947 // If we don't fit in the given page width, we'll lay out again. If we d on't fit in the 2947 // If we don't fit in the given page width, we'll lay out again. If we d on't fit in the
2948 // page width when shrunk, we will lay out at maximum shrink and clip ex tra content. 2948 // page width when shrunk, we will lay out at maximum shrink and clip ex tra content.
2949 // FIXME: We are assuming a shrink-to-fit printing implementation. A cr opping 2949 // FIXME: We are assuming a shrink-to-fit printing implementation. A cr opping
2950 // implementation should not do this! 2950 // implementation should not do this!
2951 bool horizontalWritingMode = renderView->style()->isHorizontalWritingMod e(); 2951 bool horizontalWritingMode = renderView->style()->isHorizontalWritingMod e();
2952 const LayoutRect& documentRect = renderView->documentRect(); 2952 const LayoutRect& documentRect = renderView->documentRect();
2953 LayoutUnit docLogicalWidth = horizontalWritingMode ? documentRect.width( ) : documentRect.height(); 2953 LayoutUnit docLogicalWidth = horizontalWritingMode ? documentRect.width( ) : documentRect.height();
2954 if (docLogicalWidth > pageLogicalWidth) { 2954 if (docLogicalWidth > pageLogicalWidth) {
2955 FloatSize expectedPageSize(std::min<float>(documentRect.width().toFl oat(), pageSize.width() * maximumShrinkFactor), std::min<float>(documentRect.hei ght().toFloat(), pageSize.height() * maximumShrinkFactor)); 2955 FloatSize expectedPageSize(std::min<float>(documentRect.width().toFl oat(), pageSize.width() * maximumShrinkFactor), std::min<float>(documentRect.hei ght().toFloat(), pageSize.height() * maximumShrinkFactor));
2956 FloatSize maxPageSize = m_frame->resizePageRectsKeepingRatio(FloatSi ze(originalPageSize.width(), originalPageSize.height()), expectedPageSize); 2956 FloatSize maxPageSize = m_frame->resizePageRectsKeepingRatio(FloatSi ze(originalPageSize.width(), originalPageSize.height()), expectedPageSize);
2957 pageLogicalWidth = horizontalWritingMode ? maxPageSize.width() : max PageSize.height(); 2957 pageLogicalWidth = horizontalWritingMode ? maxPageSize.width() : max PageSize.height();
2958 pageLogicalHeight = horizontalWritingMode ? maxPageSize.height() : m axPageSize.width(); 2958 pageLogicalHeight = horizontalWritingMode ? maxPageSize.height() : m axPageSize.width();
2959 2959
2960 flooredPageLogicalWidth = static_cast<LayoutUnit>(pageLogicalWidth); 2960 flooredPageLogicalWidth = static_cast<LayoutUnit>(pageLogicalWidth);
2961 flooredPageLogicalHeight = static_cast<LayoutUnit>(pageLogicalHeight ); 2961 flooredPageLogicalHeight = static_cast<LayoutUnit>(pageLogicalHeight );
2962 renderView->setLogicalWidth(flooredPageLogicalWidth); 2962 renderView->setLogicalWidth(flooredPageLogicalWidth);
2963 renderView->setPageLogicalHeight(flooredPageLogicalHeight); 2963 renderView->setPageLogicalHeight(flooredPageLogicalHeight);
2964 renderView->setNeedsLayoutAndPrefWidthsRecalc(); 2964 renderView->setNeedsLayoutAndPrefWidthsRecalcAndFullRepaint();
2965 forceLayout(); 2965 forceLayout();
2966 2966
2967 const LayoutRect& updatedDocumentRect = renderView->documentRect(); 2967 const LayoutRect& updatedDocumentRect = renderView->documentRect();
2968 LayoutUnit docLogicalHeight = horizontalWritingMode ? updatedDocumen tRect.height() : updatedDocumentRect.width(); 2968 LayoutUnit docLogicalHeight = horizontalWritingMode ? updatedDocumen tRect.height() : updatedDocumentRect.width();
2969 LayoutUnit docLogicalTop = horizontalWritingMode ? updatedDocumentRe ct.y() : updatedDocumentRect.x(); 2969 LayoutUnit docLogicalTop = horizontalWritingMode ? updatedDocumentRe ct.y() : updatedDocumentRect.x();
2970 LayoutUnit docLogicalRight = horizontalWritingMode ? updatedDocument Rect.maxX() : updatedDocumentRect.maxY(); 2970 LayoutUnit docLogicalRight = horizontalWritingMode ? updatedDocument Rect.maxX() : updatedDocumentRect.maxY();
2971 LayoutUnit clippedLogicalLeft = 0; 2971 LayoutUnit clippedLogicalLeft = 0;
2972 if (!renderView->style()->isLeftToRightDirection()) 2972 if (!renderView->style()->isLeftToRightDirection())
2973 clippedLogicalLeft = docLogicalRight - pageLogicalWidth; 2973 clippedLogicalLeft = docLogicalRight - pageLogicalWidth;
2974 LayoutRect overflow(clippedLogicalLeft, docLogicalTop, pageLogicalWi dth, docLogicalHeight); 2974 LayoutRect overflow(clippedLogicalLeft, docLogicalTop, pageLogicalWi dth, docLogicalHeight);
(...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after
3279 void FrameView::willRemoveScrollbar(Scrollbar* scrollbar, ScrollbarOrientation o rientation) 3279 void FrameView::willRemoveScrollbar(Scrollbar* scrollbar, ScrollbarOrientation o rientation)
3280 { 3280 {
3281 ScrollableArea::willRemoveScrollbar(scrollbar, orientation); 3281 ScrollableArea::willRemoveScrollbar(scrollbar, orientation);
3282 if (AXObjectCache* cache = axObjectCache()) { 3282 if (AXObjectCache* cache = axObjectCache()) {
3283 cache->remove(scrollbar); 3283 cache->remove(scrollbar);
3284 cache->handleScrollbarUpdate(this); 3284 cache->handleScrollbarUpdate(this);
3285 } 3285 }
3286 } 3286 }
3287 3287
3288 } // namespace WebCore 3288 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/dom/Element.cpp ('k') | Source/core/html/HTMLFrameSetElement.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698