From f409f4476539f32dcce3ff6832be4bc48bd25634 Mon Sep 17 00:00:00 2001 From: SmallJoker Date: Sat, 27 Apr 2019 01:56:31 +0200 Subject: Correct the checkbox selection box position (#8246) Remove m_btn_height dependency, replace with the text and checkbox size. --- src/gui/guiFormSpecMenu.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'src/gui') diff --git a/src/gui/guiFormSpecMenu.cpp b/src/gui/guiFormSpecMenu.cpp index 54434931e..92e654765 100644 --- a/src/gui/guiFormSpecMenu.cpp +++ b/src/gui/guiFormSpecMenu.cpp @@ -438,12 +438,16 @@ void GUIFormSpecMenu::parseCheckbox(parserData* data, const std::string &element fselected = true; std::wstring wlabel = translate_string(utf8_to_wide(unescape_string(label))); - s32 spacing = Environment->getSkin()->getSize(gui::EGDS_CHECK_BOX_WIDTH) + 7; + const core::dimension2d label_size = m_font->getDimension(wlabel.c_str()); + s32 cb_size = Environment->getSkin()->getSize(gui::EGDS_CHECK_BOX_WIDTH); + s32 y_center = (std::max(label_size.Height, (u32)cb_size) + 1) / 2; core::rect rect = core::rect( - pos.X, pos.Y + ((imgsize.Y / 2) - m_btn_height), - pos.X + m_font->getDimension(wlabel.c_str()).Width + spacing, - pos.Y + ((imgsize.Y / 2) + m_btn_height)); + pos.X, + pos.Y + imgsize.Y / 2 - y_center, + pos.X + label_size.Width + cb_size + 7, + pos.Y + imgsize.Y / 2 + y_center + ); FieldSpec spec( name, -- cgit v1.2.3