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

Side by Side Diff: Source/core/rendering/RenderFrameSet.cpp

Issue 301843002: Store repaint rects in the coordinate space of their backing GraphicsLayer. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Fix comment. Created 6 years, 6 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
OLDNEW
1 /** 1 /**
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 2000 Simon Hausmann <hausmann@kde.org> 3 * (C) 2000 Simon Hausmann <hausmann@kde.org>
4 * (C) 2000 Stefan Schimanski (1Stein@gmx.de) 4 * (C) 2000 Stefan Schimanski (1Stein@gmx.de)
5 * Copyright (C) 2004, 2005, 2006 Apple Computer, Inc. 5 * Copyright (C) 2004, 2005, 2006 Apple Computer, Inc.
6 * 6 *
7 * This library is free software; you can redistribute it and/or 7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Library General Public 8 * modify it under the terms of the GNU Library General Public
9 * License as published by the Free Software Foundation; either 9 * License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version. 10 * version 2 of the License, or (at your option) any later version.
(...skipping 426 matching lines...) Expand 10 before | Expand all | Expand 10 after
437 437
438 void RenderFrameSet::layout() 438 void RenderFrameSet::layout()
439 { 439 {
440 ASSERT(needsLayout()); 440 ASSERT(needsLayout());
441 441
442 bool doFullRepaint = selfNeedsLayout() && checkForRepaintDuringLayout(); 442 bool doFullRepaint = selfNeedsLayout() && checkForRepaintDuringLayout();
443 LayoutRect oldBounds; 443 LayoutRect oldBounds;
444 const RenderLayerModelObject* repaintContainer = 0; 444 const RenderLayerModelObject* repaintContainer = 0;
445 if (doFullRepaint) { 445 if (doFullRepaint) {
446 repaintContainer = containerForRepaint(); 446 repaintContainer = containerForRepaint();
447 oldBounds = clippedOverflowRectForRepaint(repaintContainer); 447 oldBounds = boundsRectForRepaint(repaintContainer);
448 } 448 }
449 449
450 if (!parent()->isFrameSet() && !document().printing()) { 450 if (!parent()->isFrameSet() && !document().printing()) {
451 setWidth(view()->viewWidth()); 451 setWidth(view()->viewWidth());
452 setHeight(view()->viewHeight()); 452 setHeight(view()->viewHeight());
453 } 453 }
454 454
455 unsigned cols = frameSet()->totalCols(); 455 unsigned cols = frameSet()->totalCols();
456 unsigned rows = frameSet()->totalRows(); 456 unsigned rows = frameSet()->totalRows();
457 457
458 if (m_rows.m_sizes.size() != rows || m_cols.m_sizes.size() != cols) { 458 if (m_rows.m_sizes.size() != rows || m_cols.m_sizes.size() != cols) {
459 m_rows.resize(rows); 459 m_rows.resize(rows);
460 m_cols.resize(cols); 460 m_cols.resize(cols);
461 } 461 }
462 462
463 LayoutUnit borderThickness = frameSet()->border(); 463 LayoutUnit borderThickness = frameSet()->border();
464 layOutAxis(m_rows, frameSet()->rowLengths(), height() - (rows - 1) * borderT hickness); 464 layOutAxis(m_rows, frameSet()->rowLengths(), height() - (rows - 1) * borderT hickness);
465 layOutAxis(m_cols, frameSet()->colLengths(), width() - (cols - 1) * borderTh ickness); 465 layOutAxis(m_cols, frameSet()->colLengths(), width() - (cols - 1) * borderTh ickness);
466 466
467 positionFrames(); 467 positionFrames();
468 468
469 RenderBox::layout(); 469 RenderBox::layout();
470 470
471 computeEdgeInfo(); 471 computeEdgeInfo();
472 472
473 updateLayerTransform(); 473 updateLayerTransform();
474 474
475 if (doFullRepaint) { 475 if (doFullRepaint) {
476 repaintUsingContainer(repaintContainer, pixelSnappedIntRect(oldBounds), InvalidationSelfLayout); 476 repaintUsingContainer(repaintContainer, pixelSnappedIntRect(oldBounds), InvalidationSelfLayout);
477 LayoutRect newBounds = clippedOverflowRectForRepaint(repaintContainer); 477 LayoutRect newBounds = boundsRectForRepaint(repaintContainer);
478 if (newBounds != oldBounds) 478 if (newBounds != oldBounds)
479 repaintUsingContainer(repaintContainer, pixelSnappedIntRect(newBound s), InvalidationSelfLayout); 479 repaintUsingContainer(repaintContainer, pixelSnappedIntRect(newBound s), InvalidationSelfLayout);
480 } 480 }
481 481
482 clearNeedsLayout(); 482 clearNeedsLayout();
483 } 483 }
484 484
485 static void clearNeedsLayoutOnHiddenFrames(RenderBox* frame) 485 static void clearNeedsLayoutOnHiddenFrames(RenderBox* frame)
486 { 486 {
487 for (; frame; frame = frame->nextSiblingBox()) { 487 for (; frame; frame = frame->nextSiblingBox()) {
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
661 return SetCursor; 661 return SetCursor;
662 } 662 }
663 if (canResizeColumn(roundedPoint)) { 663 if (canResizeColumn(roundedPoint)) {
664 cursor = columnResizeCursor(); 664 cursor = columnResizeCursor();
665 return SetCursor; 665 return SetCursor;
666 } 666 }
667 return RenderBox::getCursor(point, cursor); 667 return RenderBox::getCursor(point, cursor);
668 } 668 }
669 669
670 } // namespace WebCore 670 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698