Index: trunk/Source/core/platform/ScrollView.cpp |
=================================================================== |
--- trunk/Source/core/platform/ScrollView.cpp (revision 148648) |
+++ trunk/Source/core/platform/ScrollView.cpp (working copy) |
@@ -82,7 +82,7 @@ |
void ScrollView::setHasHorizontalScrollbar(bool hasBar) |
{ |
- ASSERT(!hasBar); |
+ ASSERT(!hasBar || !avoidScrollbarCreation()); |
if (hasBar && !m_horizontalScrollbar) { |
m_horizontalScrollbar = createScrollbar(HorizontalScrollbar); |
addChild(m_horizontalScrollbar.get()); |
@@ -93,14 +93,14 @@ |
removeChild(m_horizontalScrollbar.get()); |
m_horizontalScrollbar = 0; |
} |
- |
+ |
if (AXObjectCache* cache = axObjectCache()) |
cache->handleScrollbarUpdate(this); |
} |
void ScrollView::setHasVerticalScrollbar(bool hasBar) |
{ |
- ASSERT(!hasBar); |
+ ASSERT(!hasBar || !avoidScrollbarCreation()); |
if (hasBar && !m_verticalScrollbar) { |
m_verticalScrollbar = createScrollbar(VerticalScrollbar); |
addChild(m_verticalScrollbar.get()); |
@@ -425,13 +425,13 @@ |
newHasVerticalScrollbar = (vScroll == ScrollbarAlwaysOn); |
if (m_scrollbarsSuppressed || (hScroll != ScrollbarAuto && vScroll != ScrollbarAuto)) { |
- if (hasHorizontalScrollbar != newHasHorizontalScrollbar && hasHorizontalScrollbar) |
+ if (hasHorizontalScrollbar != newHasHorizontalScrollbar && (hasHorizontalScrollbar || !avoidScrollbarCreation())) |
setHasHorizontalScrollbar(newHasHorizontalScrollbar); |
- if (hasVerticalScrollbar != newHasVerticalScrollbar && hasVerticalScrollbar) |
+ if (hasVerticalScrollbar != newHasVerticalScrollbar && (hasVerticalScrollbar || !avoidScrollbarCreation())) |
setHasVerticalScrollbar(newHasVerticalScrollbar); |
} else { |
bool sendContentResizedNotification = false; |
- |
+ |
IntSize docSize = totalContentsSize(); |
IntSize fullVisibleSize = visibleContentRect(IncludeScrollbars).size(); |
@@ -454,7 +454,7 @@ |
newHasHorizontalScrollbar = false; |
bool scrollbarIsOverlay = ScrollbarTheme::theme()->usesOverlayScrollbars(); |
- if (hasHorizontalScrollbar != newHasHorizontalScrollbar && hasHorizontalScrollbar) { |
+ if (hasHorizontalScrollbar != newHasHorizontalScrollbar && (hasHorizontalScrollbar || !avoidScrollbarCreation())) { |
if (!scrollbarIsOverlay) |
sendContentResizedNotification = true; |
if (scrollOrigin().y() && !newHasHorizontalScrollbar && !scrollbarIsOverlay) |
@@ -464,7 +464,7 @@ |
setHasHorizontalScrollbar(newHasHorizontalScrollbar); |
} |
- if (hasVerticalScrollbar != newHasVerticalScrollbar && hasVerticalScrollbar) { |
+ if (hasVerticalScrollbar != newHasVerticalScrollbar && (hasVerticalScrollbar || !avoidScrollbarCreation())) { |
if (!scrollbarIsOverlay) |
sendContentResizedNotification = true; |
if (scrollOrigin().x() && !newHasVerticalScrollbar && !scrollbarIsOverlay) |