From f12602c0bc4d547ccec03753b25812380c1792e6 Mon Sep 17 00:00:00 2001 From: Noisyfox Date: Sat, 18 Oct 2025 19:17:50 +0800 Subject: [PATCH] Fix several imgui UTF8 related issues (#11078) * FIX:add tooltip(const std::string &label, float wrap_width) api jira: none Change-Id: I2372f57177a362f540e509747552a4a27f23fe8f (cherry picked from commit 9d690cddd60245cd3c16498e6c83183ec8446241) * Fix crash when rendering text icons --------- Co-authored-by: zhou.xu --- src/slic3r/GUI/GCodeViewer.cpp | 2 +- src/slic3r/GUI/ImGuiWrapper.cpp | 4 ++++ src/slic3r/GUI/ImGuiWrapper.hpp | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/slic3r/GUI/GCodeViewer.cpp b/src/slic3r/GUI/GCodeViewer.cpp index e62b031286..922a5aa030 100644 --- a/src/slic3r/GUI/GCodeViewer.cpp +++ b/src/slic3r/GUI/GCodeViewer.cpp @@ -4478,7 +4478,7 @@ void GCodeViewer::render_legend(float &legend_height, int canvas_width, int canv ImGui::SameLine(checkbox_pos); ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(0.0, 0.0)); // ensure no padding active ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(0.0, 0.0)); // ensure no item spacing active - ImGui::Text(into_u8(visible ? ImGui::VisibleIcon : ImGui::HiddenIcon).c_str(), ImVec2(16 * m_scale, 16 * m_scale)); + ImGui::Text("%s", into_u8(visible ? ImGui::VisibleIcon : ImGui::HiddenIcon).c_str()); ImGui::PopStyleVar(2); } } diff --git a/src/slic3r/GUI/ImGuiWrapper.cpp b/src/slic3r/GUI/ImGuiWrapper.cpp index 6b93098aa2..591b310cfe 100644 --- a/src/slic3r/GUI/ImGuiWrapper.cpp +++ b/src/slic3r/GUI/ImGuiWrapper.cpp @@ -1022,6 +1022,10 @@ void ImGuiWrapper::tooltip(const char *label, float wrap_width) ImGui::EndTooltip(); } +void ImGuiWrapper::tooltip(const std::string &label, float wrap_width) { + tooltip(label.c_str(), wrap_width); +} + void ImGuiWrapper::tooltip(const wxString &label, float wrap_width) { ImGui::BeginTooltip(); diff --git a/src/slic3r/GUI/ImGuiWrapper.hpp b/src/slic3r/GUI/ImGuiWrapper.hpp index 65c8225120..c7be9dc063 100644 --- a/src/slic3r/GUI/ImGuiWrapper.hpp +++ b/src/slic3r/GUI/ImGuiWrapper.hpp @@ -154,6 +154,7 @@ public: void text_wrapped(const std::string &label, float wrap_width); void text_wrapped(const wxString &label, float wrap_width); void tooltip(const char *label, float wrap_width); + void tooltip(const std::string &label, float wrap_width); void tooltip(const wxString &label, float wrap_width);