From: SmallJoker Date: Fri, 26 Apr 2019 23:56:31 +0000 (+0200) Subject: Correct the checkbox selection box position (#8246) X-Git-Tag: 5.1.0~234 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=f409f4476539f32dcce3ff6832be4bc48bd25634;p=oweals%2Fminetest.git Correct the checkbox selection box position (#8246) Remove m_btn_height dependency, replace with the text and checkbox size. --- 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,