LibWeb: Don't round font sizes when looking them up

We previously had a rounding error which sometimes led to asking LibGfx
for fonts with slightly wrong sizes.
This commit is contained in:
Andreas Kling 2022-03-26 23:55:11 +01:00
parent ee883372f6
commit d5bba91a16
Notes: sideshowbarker 2024-07-17 16:42:13 +09:00
2 changed files with 4 additions and 4 deletions

View file

@ -877,7 +877,7 @@ void StyleComputer::compute_font(StyleProperties& style, DOM::Element const* ele
bool monospace = false;
auto find_font = [&](String const& family) -> RefPtr<Gfx::Font> {
int font_size_in_pt = roundf(font_size_in_px * 0.75f);
float font_size_in_pt = font_size_in_px * 0.75f;
font_selector = { family, font_size_in_pt, weight, slope };
if (auto found_font = FontCache::the().get(font_selector))

View file

@ -14,20 +14,20 @@
struct FontSelector {
FlyString family;
int size { 0 };
float point_size { 0 };
int weight { 0 };
int slope { 0 };
bool operator==(const FontSelector& other) const
{
return family == other.family && size == other.size && weight == other.weight && slope == other.slope;
return family == other.family && point_size == other.point_size && weight == other.weight && slope == other.slope;
}
};
namespace AK {
template<>
struct Traits<FontSelector> : public GenericTraits<FontSelector> {
static unsigned hash(const FontSelector& key) { return pair_int_hash(pair_int_hash(key.family.hash(), key.weight), key.size); }
static unsigned hash(const FontSelector& key) { return pair_int_hash(pair_int_hash(key.family.hash(), key.weight), key.point_size); }
};
}