|
21 | 21 |
|
22 | 22 | // CHANGELOG |
23 | 23 | // (minor and older changes stripped away, please see git history for details) |
| 24 | +// 2024-08-19: Storing SDL_WindowID inside ImGuiViewport::PlatformHandle instead of SDL_Window*. |
24 | 25 | // 2024-08-19: ImGui_ImplSDL3_ProcessEvent() now ignores events intended for other SDL windows. (#7853) |
25 | 26 | // 2024-07-22: Update for SDL3 api changes: SDL_GetGamepads() memory ownership change. (#7807) |
26 | 27 | // 2024-07-18: Update for SDL3 api changes: SDL_GetClipboardText() memory ownership change. (#7801) |
@@ -133,7 +134,8 @@ static void ImGui_ImplSDL3_SetClipboardText(void*, const char* text) |
133 | 134 | static void ImGui_ImplSDL3_PlatformSetImeData(ImGuiContext*, ImGuiViewport* viewport, ImGuiPlatformImeData* data) |
134 | 135 | { |
135 | 136 | ImGui_ImplSDL3_Data* bd = ImGui_ImplSDL3_GetBackendData(); |
136 | | - SDL_Window* window = (SDL_Window*)viewport->PlatformHandle; |
| 137 | + SDL_WindowID window_id = (SDL_WindowID)(intptr_t)viewport->PlatformHandle; |
| 138 | + SDL_Window* window = SDL_GetWindowFromID(window_id); |
137 | 139 | if ((data->WantVisible == false || bd->ImeWindow != window) && bd->ImeWindow != NULL) |
138 | 140 | { |
139 | 141 | SDL_StopTextInput(bd->ImeWindow); |
@@ -413,7 +415,7 @@ bool ImGui_ImplSDL3_ProcessEvent(const SDL_Event* event) |
413 | 415 |
|
414 | 416 | static void ImGui_ImplSDL3_SetupPlatformHandles(ImGuiViewport* viewport, SDL_Window* window) |
415 | 417 | { |
416 | | - viewport->PlatformHandle = window; |
| 418 | + viewport->PlatformHandle = (void*)(intptr_t)SDL_GetWindowID(window); |
417 | 419 | viewport->PlatformHandleRaw = nullptr; |
418 | 420 | #if defined(_WIN32) && !defined(__WINRT__) |
419 | 421 | viewport->PlatformHandleRaw = (HWND)SDL_GetPointerProperty(SDL_GetWindowProperties(window), SDL_PROP_WINDOW_WIN32_HWND_POINTER, nullptr); |
|
0 commit comments