| Index: Source/core/rendering/RenderLayerScrollableArea.cpp
|
| diff --git a/Source/core/rendering/RenderLayerScrollableArea.cpp b/Source/core/rendering/RenderLayerScrollableArea.cpp
|
| index d341b15c297482c8479e09e707bee5f24d4a2da6..017b25bfedcb9ef91a1eef5af65f080a9f6a8523 100644
|
| --- a/Source/core/rendering/RenderLayerScrollableArea.cpp
|
| +++ b/Source/core/rendering/RenderLayerScrollableArea.cpp
|
| @@ -74,6 +74,11 @@ namespace WebCore {
|
|
|
| const int ResizerControlExpandRatioForTouch = 2;
|
|
|
| +// Default value is set to 15 as the default
|
| +// minimum size used by firefox is 15x15.
|
| +static const int defaultMinimumWidthForResizing = 15;
|
| +static const int defaultMinimumHeightForResizing = 15;
|
| +
|
| RenderLayerScrollableArea::RenderLayerScrollableArea(RenderBox& box)
|
| : m_box(box)
|
| , m_inResizeMode(false)
|
| @@ -714,6 +719,16 @@ static bool overflowDefinesAutomaticScrollbar(EOverflow overflow)
|
| return overflow == OAUTO || overflow == OOVERLAY;
|
| }
|
|
|
| +IntSize RenderLayerScrollableArea::minimumSizeForResizing()
|
| +{
|
| + int minimumWidth = intValueForLength(m_box.style()->logicalMinWidth(), m_box.containingBlock()->logicalWidth());
|
| + int minimumHeight = intValueForLength(m_box.style()->logicalMinHeight(), m_box.containingBlock()->logicalHeight());
|
| +
|
| + minimumWidth = std::max(minimumWidth, defaultMinimumWidthForResizing);
|
| + minimumHeight = std::max(minimumHeight, defaultMinimumHeightForResizing);
|
| + return IntSize(minimumWidth, minimumHeight);
|
| +}
|
| +
|
| void RenderLayerScrollableArea::updateAfterStyleChange(const RenderStyle* oldStyle)
|
| {
|
| // List box parts handle the scrollbars by themselves so we have nothing to do.
|
| @@ -1352,8 +1367,6 @@ void RenderLayerScrollableArea::resize(const PlatformEvent& evt, const LayoutSiz
|
| newOffset.setHeight(newOffset.height() / zoomFactor);
|
|
|
| LayoutSize currentSize = LayoutSize(m_box.width() / zoomFactor, m_box.height() / zoomFactor);
|
| - LayoutSize minimumSize = element->minimumSizeForResizing().shrunkTo(currentSize);
|
| - element->setMinimumSizeForResizing(minimumSize);
|
|
|
| LayoutSize adjustedOldOffset = LayoutSize(oldOffset.width() / zoomFactor, oldOffset.height() / zoomFactor);
|
| if (m_box.style()->shouldPlaceBlockDirectionScrollbarOnLogicalLeft()) {
|
| @@ -1361,7 +1374,7 @@ void RenderLayerScrollableArea::resize(const PlatformEvent& evt, const LayoutSiz
|
| adjustedOldOffset.setWidth(-adjustedOldOffset.width());
|
| }
|
|
|
| - LayoutSize difference = (currentSize + newOffset - adjustedOldOffset).expandedTo(minimumSize) - currentSize;
|
| + LayoutSize difference = (currentSize + newOffset - adjustedOldOffset).expandedTo(minimumSizeForResizing()) - currentSize;
|
|
|
| bool isBoxSizingBorder = m_box.style()->boxSizing() == BORDER_BOX;
|
|
|
|
|