From 0c721b0b83128f5f3428381f0ca5a2d55fd80fa0 Mon Sep 17 00:00:00 2001 From: DeaTh-G Date: Tue, 4 Feb 2025 16:32:21 +0100 Subject: [PATCH] remove empty lines from descriptions without value desc, move fix --- UnleashedRecomp/ui/imgui_utils.cpp | 8 +++++++- UnleashedRecomp/ui/options_menu.cpp | 14 ++++++-------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/UnleashedRecomp/ui/imgui_utils.cpp b/UnleashedRecomp/ui/imgui_utils.cpp index ef5163bf..066f53a2 100644 --- a/UnleashedRecomp/ui/imgui_utils.cpp +++ b/UnleashedRecomp/ui/imgui_utils.cpp @@ -633,7 +633,13 @@ ImVec2 MeasureCentredParagraph(const ImFont* font, float fontSize, float lineMar ImVec2 MeasureCentredParagraph(const ImFont* font, float fontSize, float maxWidth, float lineMargin, const char* text) { - return MeasureCentredParagraph(font, fontSize, lineMargin, Split(text, font, fontSize, maxWidth)); + const auto input = RemoveRubyAnnotations(text); + auto lines = Split(input.first.c_str(), font, fontSize, maxWidth); + + for (auto& line : lines) + line = ReAddRubyAnnotations(line, input.second); + + return MeasureCentredParagraph(font, fontSize, lineMargin, lines); } void DrawRubyAnnotatedText(const ImFont* font, float fontSize, float maxWidth, const ImVec2& pos, float lineMargin, const char* text, std::function drawMethod, std::function annotationDrawMethod, bool isCentred) diff --git a/UnleashedRecomp/ui/options_menu.cpp b/UnleashedRecomp/ui/options_menu.cpp index 6b086982..2373833c 100644 --- a/UnleashedRecomp/ui/options_menu.cpp +++ b/UnleashedRecomp/ui/options_menu.cpp @@ -1373,7 +1373,11 @@ static void DrawInfoPanel(ImVec2 infoMin, ImVec2 infoMax) desc = buf; } - desc += "\n\n" + g_selectedItem->GetValueDescription(Config::Language); + const auto& valueDescription = g_selectedItem->GetValueDescription(Config::Language); + if (!valueDescription.empty()) + { + desc += "\n\n" + valueDescription; + } } clipRectMin = { clipRectMin.x, thumbnailMax.y }; @@ -1404,13 +1408,7 @@ static void DrawInfoPanel(ImVec2 infoMin, ImVec2 infoMax) textY += annotationFontSize; } - const auto input = RemoveRubyAnnotations(desc.c_str()); - auto lines = Split(input.first.c_str(), g_seuratFont, fontSize, clipRectMax.x - clipRectMin.x); - - for (auto& line : lines) - line = ReAddRubyAnnotations(line, input.second); - - auto textSize = MeasureCentredParagraph(g_seuratFont, fontSize, 5.0f, lines); + auto textSize = MeasureCentredParagraph(g_seuratFont, fontSize, clipRectMax.x - clipRectMin.x, 5.0f, desc.c_str()); drawList->PushClipRect(clipRectMin, clipRectMax, false);