1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 03:37:34 +00:00

LibWeb: Add .scaled_font() helper to Layout::Node

This returns the font scaled for the current zoom level.
This commit is contained in:
MacDue 2023-04-01 21:12:15 +01:00 committed by Linus Groh
parent f3c450559f
commit 7061a3d8e6
2 changed files with 11 additions and 4 deletions

View file

@ -8,7 +8,6 @@
#include <AK/GenericShorthands.h>
#include <LibUnicode/CharacterTypes.h>
#include <LibWeb/DOM/Document.h>
#include <LibWeb/FontCache.h>
#include <LibWeb/HTML/HTMLHtmlElement.h>
#include <LibWeb/Layout/BlockContainer.h>
#include <LibWeb/Layout/Viewport.h>
@ -525,16 +524,16 @@ static void paint_text_fragment(PaintContext& context, Layout::TextNode const& t
DevicePixelPoint baseline_start { fragment_absolute_device_rect.x(), fragment_absolute_device_rect.y() + context.rounded_device_pixels(fragment.baseline()) };
Utf8View view { text.substring_view(fragment.start(), fragment.length()) };
auto scaled_font = FontCache::the().scaled_font(fragment.layout_node().font(), context.device_pixels_per_css_pixel());
auto& scaled_font = fragment.layout_node().scaled_font(context);
painter.draw_text_run(baseline_start.to_type<int>(), view, *scaled_font, text_node.computed_values().color());
painter.draw_text_run(baseline_start.to_type<int>(), view, scaled_font, text_node.computed_values().color());
auto selection_rect = context.enclosing_device_rect(fragment.selection_rect(text_node.font())).to_type<int>();
if (!selection_rect.is_empty()) {
painter.fill_rect(selection_rect, context.palette().selection());
Gfx::PainterStateSaver saver(painter);
painter.add_clip_rect(selection_rect);
painter.draw_text_run(baseline_start.to_type<int>(), view, *scaled_font, context.palette().selection_text());
painter.draw_text_run(baseline_start.to_type<int>(), view, scaled_font, context.palette().selection_text());
}
paint_text_decoration(context, painter, text_node, fragment);