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 1336 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1347 const bool isCompositedContentLayer = contentsInCompositedLayer(); | 1347 const bool isCompositedContentLayer = contentsInCompositedLayer(); |
1348 | 1348 |
1349 // Get the rects of the fixed objects visible in the rectToScroll | 1349 // Get the rects of the fixed objects visible in the rectToScroll |
1350 Region regionToUpdate; | 1350 Region regionToUpdate; |
1351 ViewportConstrainedObjectSet::const_iterator end = m_viewportConstrainedObje
cts->end(); | 1351 ViewportConstrainedObjectSet::const_iterator end = m_viewportConstrainedObje
cts->end(); |
1352 for (ViewportConstrainedObjectSet::const_iterator it = m_viewportConstrained
Objects->begin(); it != end; ++it) { | 1352 for (ViewportConstrainedObjectSet::const_iterator it = m_viewportConstrained
Objects->begin(); it != end; ++it) { |
1353 RenderObject* renderer = *it; | 1353 RenderObject* renderer = *it; |
1354 if (!renderer->style()->hasViewportConstrainedPosition()) | 1354 if (!renderer->style()->hasViewportConstrainedPosition()) |
1355 continue; | 1355 continue; |
1356 | 1356 |
1357 if (renderer->isComposited()) | |
1358 continue; | |
1359 | |
1360 // Fixed items should always have layers. | 1357 // Fixed items should always have layers. |
1361 ASSERT(renderer->hasLayer()); | 1358 ASSERT(renderer->hasLayer()); |
1362 RenderLayer* layer = toRenderBoxModelObject(renderer)->layer(); | 1359 RenderLayer* layer = toRenderBoxModelObject(renderer)->layer(); |
1363 | 1360 |
| 1361 // Composited layers may still actually paint into their ancestor. |
| 1362 // If that happens, the viewport constrained object needs to be |
| 1363 // repainted on scroll. |
| 1364 if (layer->isComposited() && !layer->backing()->paintsIntoCompositedAnce
stor()) |
| 1365 continue; |
| 1366 |
1364 if (layer->viewportConstrainedNotCompositedReason() == RenderLayer::NotC
ompositedForBoundsOutOfView | 1367 if (layer->viewportConstrainedNotCompositedReason() == RenderLayer::NotC
ompositedForBoundsOutOfView |
1365 || layer->viewportConstrainedNotCompositedReason() == RenderLayer::N
otCompositedForNoVisibleContent) { | 1368 || layer->viewportConstrainedNotCompositedReason() == RenderLayer::N
otCompositedForNoVisibleContent) { |
1366 // Don't invalidate for invisible fixed layers. | 1369 // Don't invalidate for invisible fixed layers. |
1367 continue; | 1370 continue; |
1368 } | 1371 } |
1369 | 1372 |
1370 if (layer->hasAncestorWithFilterOutsets()) { | 1373 if (layer->hasAncestorWithFilterOutsets()) { |
1371 // If the fixed layer has a blur/drop-shadow filter applied on at le
ast one of its parents, we cannot | 1374 // If the fixed layer has a blur/drop-shadow filter applied on at le
ast one of its parents, we cannot |
1372 // scroll using the fast path, otherwise the outsets of the filter w
ill be moved around the page. | 1375 // scroll using the fast path, otherwise the outsets of the filter w
ill be moved around the page. |
1373 return false; | 1376 return false; |
(...skipping 2032 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3406 return frame().document()->existingAXObjectCache(); | 3409 return frame().document()->existingAXObjectCache(); |
3407 return 0; | 3410 return 0; |
3408 } | 3411 } |
3409 | 3412 |
3410 bool FrameView::isMainFrame() const | 3413 bool FrameView::isMainFrame() const |
3411 { | 3414 { |
3412 return m_frame->page() && m_frame->page()->mainFrame() == m_frame; | 3415 return m_frame->page() && m_frame->page()->mainFrame() == m_frame; |
3413 } | 3416 } |
3414 | 3417 |
3415 } // namespace WebCore | 3418 } // namespace WebCore |
OLD | NEW |