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

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

Issue 131543013: Update scroll parent correctly for squashing layers. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: . Created 6 years, 9 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) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights reserved. 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights reserved.
3 * 3 *
4 * Portions are Copyright (C) 1998 Netscape Communications Corporation. 4 * Portions are Copyright (C) 1998 Netscape Communications Corporation.
5 * 5 *
6 * Other contributors: 6 * Other contributors:
7 * Robert O'Callahan <roc+@cs.cmu.edu> 7 * Robert O'Callahan <roc+@cs.cmu.edu>
8 * David Baron <dbaron@fas.harvard.edu> 8 * David Baron <dbaron@fas.harvard.edu>
9 * Christian Biesinger <cbiesinger@web.de> 9 * Christian Biesinger <cbiesinger@web.de>
10 * Randall Jesup <rjesup@wgate.com> 10 * Randall Jesup <rjesup@wgate.com>
(...skipping 343 matching lines...) Expand 10 before | Expand all | Expand 10 after
354 parentClipper.calculateClipRects(clipRectsContext, clipRects); 354 parentClipper.calculateClipRects(clipRectsContext, clipRects);
355 return; 355 return;
356 } 356 }
357 357
358 parentClipper.updateClipRects(clipRectsContext); 358 parentClipper.updateClipRects(clipRectsContext);
359 clipRects = *parentClipper.clipRects(clipRectsContext); 359 clipRects = *parentClipper.clipRects(clipRectsContext);
360 } 360 }
361 361
362 RenderLayer* RenderLayerClipper::clippingRootForPainting() const 362 RenderLayer* RenderLayerClipper::clippingRootForPainting() const
363 { 363 {
364 if (m_renderer->hasCompositedLayerMapping()) 364 if (m_renderer->hasCompositedLayerMapping() || m_renderer->groupedMapping())
365 return const_cast<RenderLayer*>(m_renderer->layer()); 365 return const_cast<RenderLayer*>(m_renderer->layer());
366 366
367 const RenderLayer* current = m_renderer->layer(); 367 const RenderLayer* current = m_renderer->layer();
368 while (current) { 368 while (current) {
369 if (current->isRootLayer()) 369 if (current->isRootLayer())
370 return const_cast<RenderLayer*>(current); 370 return const_cast<RenderLayer*>(current);
371 371
372 current = current->compositingContainer(); 372 current = current->compositingContainer();
373 ASSERT(current); 373 ASSERT(current);
374 if (current->transform() 374 if (current->transform() || (current->compositingState() == PaintsIntoOw nBacking) || current->groupedMapping())
375 || (current->compositingState() == PaintsIntoOwnBacking)
376 )
377 return const_cast<RenderLayer*>(current); 375 return const_cast<RenderLayer*>(current);
378 } 376 }
379 377
380 ASSERT_NOT_REACHED(); 378 ASSERT_NOT_REACHED();
381 return 0; 379 return 0;
382 } 380 }
383 381
384 } // namespace WebCore 382 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/rendering/RenderLayer.cpp ('k') | Source/core/rendering/compositing/CompositedLayerMapping.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698