WebCore:

2009-04-23  Dimitri Glazkov  <dglazkov@chromium.org>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=25313
        Missing scroll bars in GMail.

        Test: fast/overflow/overflow-y-scroll.html

        * platform/ScrollView.cpp:
        (WebCore::ScrollView::updateScrollbars): Added check for the ScrollbarAlwaysOn
        scroll mode.

LayoutTests:

2009-04-23  Dimitri Glazkov  <dglazkov@chromium.org>

        Reviewed by Darin Adler.
        https://bugs.webkit.org/show_bug.cgi?id=25313
        Missing scroll bars in GMail.

        * fast/overflow/overflow-y-scroll-expected.txt: Added.
        * fast/overflow/overflow-y-scroll.html: Added.

WebKit/mac:

2009-04-23  Dimitri Glazkov  <dglazkov@chromium.org>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=25313
        Missing scroll bars in GMail.

        * WebView/WebDynamicScrollBarsView.m:
        (-[WebDynamicScrollBarsView updateScrollers]): Added check for the ScrollbarAlwaysOn
            scroll mode.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@42791 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/platform/ScrollView.cpp b/WebCore/platform/ScrollView.cpp
index 4948482..751d0e1 100644
--- a/WebCore/platform/ScrollView.cpp
+++ b/WebCore/platform/ScrollView.cpp
@@ -330,11 +330,12 @@
     ScrollbarMode hScroll = m_horizontalScrollbarMode;
     ScrollbarMode vScroll = m_verticalScrollbarMode;
 
+    if (hScroll != ScrollbarAuto)
+        newHasHorizontalScrollbar = (hScroll == ScrollbarAlwaysOn);
+    if (vScroll != ScrollbarAuto)
+        newHasVerticalScrollbar = (vScroll == ScrollbarAlwaysOn);
+
     if (m_scrollbarsSuppressed || (hScroll != ScrollbarAuto && vScroll != ScrollbarAuto)) {
-        if (hScroll != ScrollbarAuto)
-            newHasHorizontalScrollbar = (hScroll == ScrollbarAlwaysOn);
-        if (vScroll != ScrollbarAuto)
-            newHasVerticalScrollbar = (vScroll == ScrollbarAlwaysOn);
         if (hasHorizontalScrollbar != newHasHorizontalScrollbar)
             setHasHorizontalScrollbar(newHasHorizontalScrollbar);
         if (hasVerticalScrollbar != newHasVerticalScrollbar)
@@ -355,19 +356,19 @@
             newHasHorizontalScrollbar = docSize.width() > visibleWidth();
         if (vScroll == ScrollbarAuto)
             newHasVerticalScrollbar = docSize.height() > visibleHeight();
-        
+
         // If we ever turn one scrollbar off, always turn the other one off too.  Never ever
         // try to both gain/lose a scrollbar in the same pass.
-        if (!newHasHorizontalScrollbar && hasHorizontalScrollbar)
+        if (!newHasHorizontalScrollbar && hasHorizontalScrollbar && vScroll != ScrollbarAlwaysOn)
             newHasVerticalScrollbar = false;
-        if (!newHasVerticalScrollbar && hasVerticalScrollbar)
+        if (!newHasVerticalScrollbar && hasVerticalScrollbar && hScroll != ScrollbarAlwaysOn)
             newHasHorizontalScrollbar = false;
 
         if (hasHorizontalScrollbar != newHasHorizontalScrollbar) {
             setHasHorizontalScrollbar(newHasHorizontalScrollbar);
             sendContentResizedNotification = true;
         }
- 
+
         if (hasVerticalScrollbar != newHasVerticalScrollbar) {
             setHasVerticalScrollbar(newHasVerticalScrollbar);
             sendContentResizedNotification = true;