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;