Bug 1022577 - Ensure we flush the repaint _after_ taking the scroll offset from content. r=botond

This commit is contained in:
Kartikaya Gupta 2014-06-11 16:51:30 -04:00
Родитель b605651fdd
Коммит 6ab27b8f7a
1 изменённых файлов: 5 добавлений и 2 удалений

Просмотреть файл

@ -2261,14 +2261,17 @@ void AsyncPanZoomController::NotifyLayersUpdated(const FrameMetrics& aLayerMetri
mFrameMetrics.mHasScrollgrab = aLayerMetrics.mHasScrollgrab;
if (scrollOffsetUpdated) {
CancelAnimation();
APZC_LOG("%p updating scroll offset from (%f, %f) to (%f, %f)\n", this,
mFrameMetrics.GetScrollOffset().x, mFrameMetrics.GetScrollOffset().y,
aLayerMetrics.GetScrollOffset().x, aLayerMetrics.GetScrollOffset().y);
mFrameMetrics.CopyScrollInfoFrom(aLayerMetrics);
// Cancel the animation (which will also trigger a repaint request)
// after we update the scroll offset above. Otherwise we can be left
// in a state where things are out of sync.
CancelAnimation();
// Because of the scroll offset update, any inflight paint requests are
// going to be ignored by layout, and so mLastDispatchedPaintMetrics
// becomes incorrect for the purposes of calculating the LD transform. To