LibGUI: Round up font sizes in various widget size calculations

This commit is contained in:
Andreas Kling 2023-02-28 18:17:43 +01:00
parent c44bc58aaa
commit f1e0eb8a25
Notes: sideshowbarker 2024-07-17 04:21:32 +09:00
5 changed files with 10 additions and 10 deletions

View file

@ -279,8 +279,8 @@ Optional<UISize> Button::calculated_min_size() const
if (!text().is_empty()) {
auto& font = this->font();
horizontal = font.width(text()) + 2;
vertical = font.glyph_height() + 4; // FIXME: Use actual maximum total height
horizontal = static_cast<int>(ceilf(font.width(text()))) + 2;
vertical = static_cast<int>(ceilf(font.pixel_size())) + 4; // FIXME: Use actual maximum total height
}
if (m_icon) {

View file

@ -42,9 +42,9 @@ void CheckBox::paint_event(PaintEvent& event)
auto text_rect = rect();
if (m_checkbox_position == CheckBoxPosition::Left)
text_rect.set_left(s_box_width + s_horizontal_padding);
text_rect.set_width(font().width(text()));
text_rect.set_top(height() / 2 - font().glyph_height() / 2);
text_rect.set_height(font().glyph_height());
text_rect.set_width(static_cast<int>(ceilf(font().width(text()))));
text_rect.set_top(height() / 2 - static_cast<int>(ceilf(font().glyph_height()) / 2));
text_rect.set_height(static_cast<int>(ceilf(font().glyph_height())));
if (fill_with_background_color())
painter.fill_rect(rect(), palette().window());
@ -85,7 +85,7 @@ void CheckBox::set_autosize(bool autosize)
void CheckBox::size_to_fit()
{
set_fixed_width(s_box_width + font().width(text()) + s_horizontal_padding * 2);
set_fixed_width(s_box_width + static_cast<int>(ceilf(font().width(text()))) + s_horizontal_padding * 2);
}
}

View file

@ -24,7 +24,7 @@ GroupBox::GroupBox(StringView title)
Margins GroupBox::content_margins() const
{
return {
(!m_title.is_empty() ? font().glyph_height() + 1 /*room for the focus rect*/ : 2),
(!m_title.is_empty() ? static_cast<int>(ceilf(font().glyph_height())) + 1 /*room for the focus rect*/ : 2),
2,
2,
2
@ -38,7 +38,7 @@ void GroupBox::paint_event(PaintEvent& event)
Gfx::IntRect frame_rect {
0, (!m_title.is_empty() ? font().glyph_height() / 2 : 0),
width(), height() - (!m_title.is_empty() ? font().glyph_height() / 2 : 0)
width(), height() - (!m_title.is_empty() ? static_cast<int>(ceilf(font().glyph_height())) / 2 : 0)
};
Gfx::StylePainter::paint_frame(painter, frame_rect, palette(), Gfx::FrameShape::Box, Gfx::FrameShadow::Sunken, 2);

View file

@ -428,7 +428,7 @@ void IconView::get_item_rects(int item_index, ItemData& item_data, Gfx::Font con
item_data.icon_offset_y = -font.glyph_height() - 6;
item_data.icon_rect.translate_by(0, item_data.icon_offset_y);
int unwrapped_text_width = font.width(item_data.text);
int unwrapped_text_width = static_cast<int>(ceilf(font.width(item_data.text)));
int available_width = item_rect.width() - 6;
item_data.text_rect = { 0, item_data.icon_rect.bottom() + 6 + 1, 0, font.glyph_height() };

View file

@ -66,7 +66,7 @@ Optional<UISize> RadioButton::calculated_min_size() const
int horizontal = 2 + 7, vertical = 0;
auto& font = this->font();
vertical = max(font.glyph_height(), circle_size().height());
horizontal += font.width(text());
horizontal += static_cast<int>(ceilf(font.width(text())));
return UISize(horizontal, vertical);
}