summaryrefslogtreecommitdiff
path: root/Source/WebCore/rendering/RenderSlider.cpp
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@digia.com>2013-09-13 12:51:20 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-09-19 20:50:05 +0200
commitd441d6f39bb846989d95bcf5caf387b42414718d (patch)
treee367e64a75991c554930278175d403c072de6bb8 /Source/WebCore/rendering/RenderSlider.cpp
parent0060b2994c07842f4c59de64b5e3e430525c4b90 (diff)
downloadqtwebkit-d441d6f39bb846989d95bcf5caf387b42414718d.tar.gz
Import Qt5x2 branch of QtWebkit for Qt 5.2
Importing a new snapshot of webkit. Change-Id: I2d01ad12cdc8af8cb015387641120a9d7ea5f10c Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
Diffstat (limited to 'Source/WebCore/rendering/RenderSlider.cpp')
-rw-r--r--Source/WebCore/rendering/RenderSlider.cpp19
1 files changed, 12 insertions, 7 deletions
diff --git a/Source/WebCore/rendering/RenderSlider.cpp b/Source/WebCore/rendering/RenderSlider.cpp
index d5b90cad6..55df4fdea 100644
--- a/Source/WebCore/rendering/RenderSlider.cpp
+++ b/Source/WebCore/rendering/RenderSlider.cpp
@@ -41,6 +41,7 @@
#include "StepRange.h"
#include "StyleResolver.h"
#include <wtf/MathExtras.h>
+#include <wtf/StackStats.h>
using std::min;
@@ -70,6 +71,13 @@ int RenderSlider::baselinePosition(FontBaseline, bool /*firstLine*/, LineDirecti
return height() + marginTop();
}
+void RenderSlider::computeIntrinsicLogicalWidths(LayoutUnit& minLogicalWidth, LayoutUnit& maxLogicalWidth) const
+{
+ maxLogicalWidth = defaultTrackLength * style()->effectiveZoom();
+ if (!style()->width().isPercent())
+ minLogicalWidth = maxLogicalWidth;
+}
+
void RenderSlider::computePreferredLogicalWidths()
{
m_minPreferredLogicalWidth = 0;
@@ -78,16 +86,13 @@ void RenderSlider::computePreferredLogicalWidths()
if (style()->width().isFixed() && style()->width().value() > 0)
m_minPreferredLogicalWidth = m_maxPreferredLogicalWidth = adjustContentBoxLogicalWidthForBoxSizing(style()->width().value());
else
- m_maxPreferredLogicalWidth = defaultTrackLength * style()->effectiveZoom();
+ computeIntrinsicLogicalWidths(m_minPreferredLogicalWidth, m_maxPreferredLogicalWidth);
if (style()->minWidth().isFixed() && style()->minWidth().value() > 0) {
m_maxPreferredLogicalWidth = max(m_maxPreferredLogicalWidth, adjustContentBoxLogicalWidthForBoxSizing(style()->minWidth().value()));
m_minPreferredLogicalWidth = max(m_minPreferredLogicalWidth, adjustContentBoxLogicalWidthForBoxSizing(style()->minWidth().value()));
- } else if (style()->width().isPercent() || (style()->width().isAuto() && style()->height().isPercent()))
- m_minPreferredLogicalWidth = 0;
- else
- m_minPreferredLogicalWidth = m_maxPreferredLogicalWidth;
-
+ }
+
if (style()->maxWidth().isFixed()) {
m_maxPreferredLogicalWidth = min(m_maxPreferredLogicalWidth, adjustContentBoxLogicalWidthForBoxSizing(style()->maxWidth().value()));
m_minPreferredLogicalWidth = min(m_minPreferredLogicalWidth, adjustContentBoxLogicalWidthForBoxSizing(style()->maxWidth().value()));
@@ -109,7 +114,7 @@ void RenderSlider::layout()
if (thumbBox && thumbBox->isSliderThumb())
static_cast<RenderSliderThumb*>(thumbBox)->updateAppearance(style());
- RenderBlock::layout();
+ RenderFlexibleBox::layout();
}
bool RenderSlider::inDragMode() const