Skip to content

Commit

Permalink
Viewports + Backends: Win32: Fixed setting title bar text when applic…
Browse files Browse the repository at this point in the history
…ation is compiled without UNICODE. (#7979, #5725)
  • Loading branch information
Marius PvW authored and ocornut committed Feb 21, 2025
1 parent 6acdce7 commit 3064e6d
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 1 deletion.
7 changes: 6 additions & 1 deletion backends/imgui_impl_win32.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1272,7 +1272,12 @@ static void ImGui_ImplWin32_SetWindowTitle(ImGuiViewport* viewport, const char*
ImVector<wchar_t> title_w;
title_w.resize(n);
::MultiByteToWideChar(CP_UTF8, 0, title, -1, title_w.Data, n);
::SetWindowTextW(vd->Hwnd, title_w.Data);

// Calling SetWindowTextW() in a project where UNICODE is not set doesn't work but there's a trick
// which is to pass it directly to the DefWindowProcW() handler.
// See: https://stackoverflow.com/questions/9410681/setwindowtextw-in-an-ansi-project
//::SetWindowTextW(vd->Hwnd, title_w.Data);
::DefWindowProcW(vd->Hwnd, WM_SETTEXT, 0, (LPARAM)title_w.Data);
}

static void ImGui_ImplWin32_SetWindowAlpha(ImGuiViewport* viewport, float alpha)
Expand Down
2 changes: 2 additions & 0 deletions docs/CHANGELOG.txt
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,8 @@ Docking+Viewports Branch:

- Viewports: fixed an assert when a window load settings with a position outside
monitor bounds, when there are multiple monitors. (#8393, #8385) [@gaborodriguez]
- Viewports + Backends: Win32: Fixed setting title bar text when application
is compiled without UNICODE. (#7979, #5725) [@lailoken]
- Backends: GLFW, SDL2/SDL3: Update monitors and work areas information every frame,
as the later may change regardless of monitor/display changes. (#8415)
- Backends: Win32: WM_SETTINGCHANGE's SPI_SETWORKAREA message also triggers a refresh
Expand Down

0 comments on commit 3064e6d

Please sign in to comment.