From 9ee86f22b71069a405800141115f775bcfb2767f Mon Sep 17 00:00:00 2001 From: omar Date: Mon, 5 Nov 2018 17:37:06 +0100 Subject: [PATCH] Examples: Win32: Handle UTf-8 in platform window title setting. (#2164) --- examples/imgui_impl_win32.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/examples/imgui_impl_win32.cpp b/examples/imgui_impl_win32.cpp index ea5a25d5..fb753794 100644 --- a/examples/imgui_impl_win32.cpp +++ b/examples/imgui_impl_win32.cpp @@ -538,9 +538,14 @@ static bool ImGui_ImplWin32_GetWindowFocus(ImGuiViewport* viewport) static void ImGui_ImplWin32_SetWindowTitle(ImGuiViewport* viewport, const char* title) { + // ::SetWindowTextA() doesn't properly handle UTF-8 so we explicitely convert our string. ImGuiViewportDataWin32* data = (ImGuiViewportDataWin32*)viewport->PlatformUserData; IM_ASSERT(data->Hwnd != 0); - ::SetWindowTextA(data->Hwnd, title); + int n = ::MultiByteToWideChar(CP_UTF8, 0, title, -1, NULL, 0); + ImVector title_w; + title_w.resize(n); + ::MultiByteToWideChar(CP_UTF8, 0, title, -1, title_w.Data, n); + ::SetWindowTextW(data->Hwnd, title_w.Data); } static void ImGui_ImplWin32_SetWindowAlpha(ImGuiViewport* viewport, float alpha)