summaryrefslogtreecommitdiff
path: root/Source/WebCore/rendering/RenderMeter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/rendering/RenderMeter.cpp')
-rw-r--r--Source/WebCore/rendering/RenderMeter.cpp17
1 files changed, 13 insertions, 4 deletions
diff --git a/Source/WebCore/rendering/RenderMeter.cpp b/Source/WebCore/rendering/RenderMeter.cpp
index b539c0a3a..a4b3eca35 100644
--- a/Source/WebCore/rendering/RenderMeter.cpp
+++ b/Source/WebCore/rendering/RenderMeter.cpp
@@ -55,13 +55,22 @@ HTMLMeterElement* RenderMeter::meterElement() const
void RenderMeter::updateLogicalWidth()
{
RenderBox::updateLogicalWidth();
- setWidth(theme()->meterSizeForBounds(this, pixelSnappedIntRect(frameRect())).width());
+
+ IntSize frameSize = theme()->meterSizeForBounds(this, pixelSnappedIntRect(frameRect()));
+ setLogicalWidth(isHorizontalWritingMode() ? frameSize.width() : frameSize.height());
}
-void RenderMeter::updateLogicalHeight()
+void RenderMeter::computeLogicalHeight(LayoutUnit logicalHeight, LayoutUnit logicalTop, LogicalExtentComputedValues& computedValues) const
{
- RenderBox::updateLogicalHeight();
- setHeight(theme()->meterSizeForBounds(this, pixelSnappedIntRect(frameRect())).height());
+ RenderBox::computeLogicalHeight(logicalHeight, logicalTop, computedValues);
+
+ LayoutRect frame = frameRect();
+ if (isHorizontalWritingMode())
+ frame.setHeight(computedValues.m_extent);
+ else
+ frame.setWidth(computedValues.m_extent);
+ IntSize frameSize = theme()->meterSizeForBounds(this, pixelSnappedIntRect(frame));
+ computedValues.m_extent = isHorizontalWritingMode() ? frameSize.height() : frameSize.width();
}
double RenderMeter::valueRatio() const