<rdar://problem/9717490> Flash of white when navigating daringfireball.net
authormitz@apple.com <mitz@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 6 Oct 2011 23:42:57 +0000 (23:42 +0000)
committermitz@apple.com <mitz@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 6 Oct 2011 23:42:57 +0000 (23:42 +0000)
https://bugs.webkit.org/show_bug.cgi?id=69581

Reviewed by Darin Adler.

* platform/ScrollView.cpp:
(WebCore::ScrollView::updateScrollbars): Moved the calls to Scrollbar::setEnabled() into the code
section where invalidation is suppressed if necessary, so that they do not trigger premature invalidation.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@96874 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/platform/ScrollView.cpp

index 5fc369d799cd87629fdf3049a3cea821c8b31a6f..a0b4b7894430497447eb62785305053a8eba935a 100644 (file)
@@ -1,3 +1,14 @@
+2011-10-06  Dan Bernstein  <mitz@apple.com>
+
+        <rdar://problem/9717490> Flash of white when navigating daringfireball.net
+        https://bugs.webkit.org/show_bug.cgi?id=69581
+
+        Reviewed by Darin Adler.
+
+        * platform/ScrollView.cpp:
+        (WebCore::ScrollView::updateScrollbars): Moved the calls to Scrollbar::setEnabled() into the code
+        section where invalidation is suppressed if necessary, so that they do not trigger premature invalidation.
+
 2011-10-06  Dan Bernstein  <mitz@apple.com>
 
         Added a comment explaining code added in r96834.
index c18d4cfc2a5fe04cf44d21fa875b197ee89e90c2..5f5a725ffa33c02cbb5b53436a072f88f304d7d9 100644 (file)
@@ -532,7 +532,6 @@ void ScrollView::updateScrollbars(const IntSize& desiredOffset)
 
     if (m_horizontalScrollbar) {
         int clientWidth = visibleWidth();
-        m_horizontalScrollbar->setEnabled(contentsWidth() > clientWidth);
         int pageStep = max(max<int>(clientWidth * Scrollbar::minFractionToStepWhenPaging(), clientWidth - Scrollbar::maxOverlapBetweenPages()), 1);
         IntRect oldRect(m_horizontalScrollbar->frameRect());
         IntRect hBarRect = IntRect(0,
@@ -545,6 +544,7 @@ void ScrollView::updateScrollbars(const IntSize& desiredOffset)
 
         if (m_scrollbarsSuppressed)
             m_horizontalScrollbar->setSuppressInvalidation(true);
+        m_horizontalScrollbar->setEnabled(contentsWidth() > clientWidth);
         m_horizontalScrollbar->setSteps(Scrollbar::pixelsPerLineStep(), pageStep);
         m_horizontalScrollbar->setProportion(clientWidth, contentsWidth());
         if (m_scrollbarsSuppressed)
@@ -553,7 +553,6 @@ void ScrollView::updateScrollbars(const IntSize& desiredOffset)
 
     if (m_verticalScrollbar) {
         int clientHeight = visibleHeight();
-        m_verticalScrollbar->setEnabled(contentsHeight() > clientHeight);
         int pageStep = max(max<int>(clientHeight * Scrollbar::minFractionToStepWhenPaging(), clientHeight - Scrollbar::maxOverlapBetweenPages()), 1);
         IntRect oldRect(m_verticalScrollbar->frameRect());
         IntRect vBarRect = IntRect(width() - m_verticalScrollbar->width(), 
@@ -566,6 +565,7 @@ void ScrollView::updateScrollbars(const IntSize& desiredOffset)
 
         if (m_scrollbarsSuppressed)
             m_verticalScrollbar->setSuppressInvalidation(true);
+        m_verticalScrollbar->setEnabled(contentsHeight() > clientHeight);
         m_verticalScrollbar->setSteps(Scrollbar::pixelsPerLineStep(), pageStep);
         m_verticalScrollbar->setProportion(clientHeight, contentsHeight());
         if (m_scrollbarsSuppressed)