mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 03:47:35 +00:00
Everywhere: Fully qualify font names by including their slope
Fixes typefaces of the same weight but different slopes being incorrectly returned for each other by FontDatabase.
This commit is contained in:
parent
87a149c9a4
commit
96895cd22c
15 changed files with 39 additions and 25 deletions
|
@ -793,13 +793,14 @@ void StyleComputer::compute_font(StyleProperties& style, DOM::Element const* ele
|
|||
FontSelector font_selector;
|
||||
bool monospace = false;
|
||||
|
||||
// FIXME: Implement font slope style. All found fonts are currently hard-coded as regular.
|
||||
auto find_font = [&](String const& family) -> RefPtr<Gfx::Font> {
|
||||
font_selector = { family, size, weight };
|
||||
font_selector = { family, size, weight, 0 };
|
||||
|
||||
if (auto found_font = FontCache::the().get(font_selector))
|
||||
return found_font;
|
||||
|
||||
if (auto found_font = Gfx::FontDatabase::the().get(family, size, weight))
|
||||
if (auto found_font = Gfx::FontDatabase::the().get(family, size, weight, 0))
|
||||
return found_font;
|
||||
|
||||
return {};
|
||||
|
|
|
@ -16,10 +16,11 @@ struct FontSelector {
|
|||
FlyString family;
|
||||
int size { 0 };
|
||||
int weight { 0 };
|
||||
int slope { 0 };
|
||||
|
||||
bool operator==(const FontSelector& other) const
|
||||
{
|
||||
return family == other.family && size == other.size && weight == other.weight;
|
||||
return family == other.family && size == other.size && weight == other.weight && slope == other.slope;
|
||||
}
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue