mirror of
https://github.com/RGBCube/serenity
synced 2025-07-17 11:37:40 +00:00
LibWeb: Convert stroke-width
to LengthPercentage
This is a guinea pig. So far so good?
This commit is contained in:
parent
69878cde3e
commit
a26cec3805
2 changed files with 9 additions and 5 deletions
|
@ -135,7 +135,7 @@ public:
|
||||||
|
|
||||||
Optional<Color> fill() const { return m_inherited.fill; }
|
Optional<Color> fill() const { return m_inherited.fill; }
|
||||||
Optional<Color> stroke() const { return m_inherited.stroke; }
|
Optional<Color> stroke() const { return m_inherited.stroke; }
|
||||||
Optional<Length> const& stroke_width() const { return m_inherited.stroke_width; }
|
Optional<LengthPercentage> const& stroke_width() const { return m_inherited.stroke_width; }
|
||||||
|
|
||||||
Vector<CSS::Transformation> transformations() const { return m_noninherited.transformations; }
|
Vector<CSS::Transformation> transformations() const { return m_noninherited.transformations; }
|
||||||
|
|
||||||
|
@ -158,7 +158,7 @@ protected:
|
||||||
|
|
||||||
Optional<Color> fill;
|
Optional<Color> fill;
|
||||||
Optional<Color> stroke;
|
Optional<Color> stroke;
|
||||||
Optional<Length> stroke_width;
|
Optional<LengthPercentage> stroke_width;
|
||||||
} m_inherited;
|
} m_inherited;
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
|
@ -256,7 +256,7 @@ public:
|
||||||
|
|
||||||
void set_fill(Color value) { m_inherited.fill = value; }
|
void set_fill(Color value) { m_inherited.fill = value; }
|
||||||
void set_stroke(Color value) { m_inherited.stroke = value; }
|
void set_stroke(Color value) { m_inherited.stroke = value; }
|
||||||
void set_stroke_width(Length value) { m_inherited.stroke_width = value; }
|
void set_stroke_width(LengthPercentage value) { m_inherited.stroke_width = value; }
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -59,8 +59,12 @@ Optional<float> SVGGraphicsElement::stroke_width() const
|
||||||
return {};
|
return {};
|
||||||
// FIXME: Converting to pixels isn't really correct - values should be in "user units"
|
// FIXME: Converting to pixels isn't really correct - values should be in "user units"
|
||||||
// https://svgwg.org/svg2-draft/coords.html#TermUserUnits
|
// https://svgwg.org/svg2-draft/coords.html#TermUserUnits
|
||||||
if (auto width = layout_node()->computed_values().stroke_width(); width.has_value())
|
if (auto width = layout_node()->computed_values().stroke_width(); width.has_value()) {
|
||||||
return width->to_px(*layout_node());
|
// Resolved relative to the "Scaled viewport size": https://www.w3.org/TR/2017/WD-fill-stroke-3-20170413/#scaled-viewport-size
|
||||||
|
// FIXME: This isn't right, but it's something.
|
||||||
|
auto scaled_viewport_size = CSS::Length::make_px((client_width() + client_height()) * 0.5f);
|
||||||
|
return width->resolved(scaled_viewport_size).to_px(*layout_node());
|
||||||
|
}
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue