| OLD | NEW |
| 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 357 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 368 // for now we just crash to avoid allowing an attacker to use after free
. | 368 // for now we just crash to avoid allowing an attacker to use after free
. |
| 369 frameView->updateWidgetPositions(); | 369 frameView->updateWidgetPositions(); |
| 370 RELEASE_ASSERT(frameView->renderView()); | 370 RELEASE_ASSERT(frameView->renderView()); |
| 371 updateCompositingLayersAfterScroll(); | 371 updateCompositingLayersAfterScroll(); |
| 372 } | 372 } |
| 373 | 373 |
| 374 RenderLayerModelObject* repaintContainer = m_box->containerForRepaint(); | 374 RenderLayerModelObject* repaintContainer = m_box->containerForRepaint(); |
| 375 // The caret rect needs to be invalidated after scrolling | 375 // The caret rect needs to be invalidated after scrolling |
| 376 frame->selection().setCaretRectNeedsUpdate(); | 376 frame->selection().setCaretRectNeedsUpdate(); |
| 377 | 377 |
| 378 FloatQuad quadForFakeMouseMoveEvent = FloatQuad(layer()->repainter().repaint
Rect()); | 378 FloatQuad quadForFakeMouseMoveEvent; |
| 379 if (RuntimeEnabledFeatures::repaintAfterLayoutEnabled()) |
| 380 quadForFakeMouseMoveEvent = FloatQuad(layer()->renderer()->newRepaintRec
t()); |
| 381 else |
| 382 quadForFakeMouseMoveEvent = FloatQuad(layer()->repainter().repaintRect()
); |
| 383 |
| 379 if (repaintContainer) | 384 if (repaintContainer) |
| 380 quadForFakeMouseMoveEvent = repaintContainer->localToAbsoluteQuad(quadFo
rFakeMouseMoveEvent); | 385 quadForFakeMouseMoveEvent = repaintContainer->localToAbsoluteQuad(quadFo
rFakeMouseMoveEvent); |
| 381 frame->eventHandler().dispatchFakeMouseMoveEventSoonInQuad(quadForFakeMouseM
oveEvent); | 386 frame->eventHandler().dispatchFakeMouseMoveEventSoonInQuad(quadForFakeMouseM
oveEvent); |
| 382 | 387 |
| 383 bool requiresRepaint = true; | 388 bool requiresRepaint = true; |
| 384 | 389 |
| 385 if (m_box->view()->compositor()->inCompositingMode()) { | 390 if (m_box->view()->compositor()->inCompositingMode()) { |
| 386 bool onlyScrolledCompositedLayers = scrollsOverflow() | 391 bool onlyScrolledCompositedLayers = scrollsOverflow() |
| 387 && !layer()->hasVisibleNonLayerContent() | 392 && !layer()->hasVisibleNonLayerContent() |
| 388 && !layer()->hasNonCompositedChild() | 393 && !layer()->hasNonCompositedChild() |
| 389 && !layer()->hasBlockSelectionGapBounds() | 394 && !layer()->hasBlockSelectionGapBounds() |
| 390 && !m_box->isMarquee(); | 395 && !m_box->isMarquee(); |
| 391 | 396 |
| 392 if (usesCompositedScrolling() || onlyScrolledCompositedLayers) | 397 if (usesCompositedScrolling() || onlyScrolledCompositedLayers) |
| 393 requiresRepaint = false; | 398 requiresRepaint = false; |
| 394 } | 399 } |
| 395 | 400 |
| 396 // Just schedule a full repaint of our object. | 401 // Just schedule a full repaint of our object. |
| 397 if (requiresRepaint) { | 402 if (requiresRepaint) { |
| 398 if (RuntimeEnabledFeatures::repaintAfterLayoutEnabled() && m_box->frameV
iew()->isInPerformLayout()) | 403 if (RuntimeEnabledFeatures::repaintAfterLayoutEnabled()) { |
| 399 m_box->setShouldDoFullRepaintAfterLayout(true); | 404 if (m_box->frameView()->isInPerformLayout()) |
| 400 else | 405 m_box->setShouldDoFullRepaintAfterLayout(true); |
| 406 else |
| 407 m_box->repaintUsingContainer(repaintContainer, pixelSnappedIntRe
ct(layer()->renderer()->newRepaintRect())); |
| 408 } else { |
| 401 m_box->repaintUsingContainer(repaintContainer, pixelSnappedIntRect(l
ayer()->repainter().repaintRect())); | 409 m_box->repaintUsingContainer(repaintContainer, pixelSnappedIntRect(l
ayer()->repainter().repaintRect())); |
| 410 } |
| 402 } | 411 } |
| 403 | 412 |
| 404 // Schedule the scroll DOM event. | 413 // Schedule the scroll DOM event. |
| 405 if (m_box->node()) | 414 if (m_box->node()) |
| 406 m_box->node()->document().enqueueScrollEventForNode(m_box->node()); | 415 m_box->node()->document().enqueueScrollEventForNode(m_box->node()); |
| 407 | 416 |
| 408 InspectorInstrumentation::didScrollLayer(m_box); | 417 InspectorInstrumentation::didScrollLayer(m_box); |
| 409 } | 418 } |
| 410 | 419 |
| 411 IntPoint RenderLayerScrollableArea::scrollPosition() const | 420 IntPoint RenderLayerScrollableArea::scrollPosition() const |
| (...skipping 1089 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1501 void RenderLayerScrollableArea::setForceNeedsCompositedScrolling(ForceNeedsCompo
sitedScrollingMode mode) | 1510 void RenderLayerScrollableArea::setForceNeedsCompositedScrolling(ForceNeedsCompo
sitedScrollingMode mode) |
| 1502 { | 1511 { |
| 1503 if (m_forceNeedsCompositedScrolling == mode) | 1512 if (m_forceNeedsCompositedScrolling == mode) |
| 1504 return; | 1513 return; |
| 1505 | 1514 |
| 1506 m_forceNeedsCompositedScrolling = mode; | 1515 m_forceNeedsCompositedScrolling = mode; |
| 1507 layer()->didUpdateNeedsCompositedScrolling(); | 1516 layer()->didUpdateNeedsCompositedScrolling(); |
| 1508 } | 1517 } |
| 1509 | 1518 |
| 1510 } // Namespace WebCore | 1519 } // Namespace WebCore |
| OLD | NEW |