From 61a703816cdae1569ef66b146fe8045832ec9c63 Mon Sep 17 00:00:00 2001 From: MacDue Date: Thu, 7 Jul 2022 01:40:05 +0100 Subject: [PATCH] LibWeb: Base marker size on font height rather than line height This fixes the oversized markers on GitHub --- .../LibWeb/Layout/BlockFormattingContext.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/Userland/Libraries/LibWeb/Layout/BlockFormattingContext.cpp b/Userland/Libraries/LibWeb/Layout/BlockFormattingContext.cpp index 003818d4c1..f4438f089c 100644 --- a/Userland/Libraries/LibWeb/Layout/BlockFormattingContext.cpp +++ b/Userland/Libraries/LibWeb/Layout/BlockFormattingContext.cpp @@ -767,16 +767,21 @@ void BlockFormattingContext::layout_list_item_marker(ListItemBox const& list_ite image_height = list_style_image->rect().height(); } + int default_marker_width = max(4, marker.font().glyph_height() - 4); + if (marker.text().is_empty()) { - marker_state.content_width = image_width + 4; + marker_state.content_width = image_width + default_marker_width; } else { auto text_width = marker.font().width(marker.text()); marker_state.content_width = image_width + text_width; } - marker_state.content_height = max(image_height, marker.line_height()); + marker_state.content_height = max(image_height, marker.font().glyph_height() + 1); - marker_state.offset = { -(marker_state.content_width + 4), 0 }; + marker_state.offset = { + -(marker_state.content_width + default_marker_width), + max(0.f, (marker.line_height() - marker_state.content_height) / 2.f) + }; if (marker_state.content_height > list_item_state.content_height) list_item_state.content_height = marker_state.content_height;