@@ -951,10 +951,7 @@ static void ImGui_ImplSDL3_CreateWindow(ImGuiViewport* viewport)
951
951
sdl_flags |= SDL_GetWindowFlags (bd->Window );
952
952
sdl_flags |= (viewport->Flags & ImGuiViewportFlags_NoDecoration) ? SDL_WINDOW_BORDERLESS : 0 ;
953
953
sdl_flags |= (viewport->Flags & ImGuiViewportFlags_NoDecoration) ? 0 : SDL_WINDOW_RESIZABLE;
954
- #if !defined(_WIN32)
955
- // See SDL hack in ImGui_ImplSDL3_ShowWindow().
956
954
sdl_flags |= (viewport->Flags & ImGuiViewportFlags_NoTaskBarIcon) ? SDL_WINDOW_UTILITY : 0 ;
957
- #endif
958
955
sdl_flags |= (viewport->Flags & ImGuiViewportFlags_TopMost) ? SDL_WINDOW_ALWAYS_ON_TOP : 0 ;
959
956
vd->Window = SDL_CreateWindow (" No Title Yet" , (int )viewport->Size .x , (int )viewport->Size .y , sdl_flags);
960
957
SDL_SetWindowParent (vd->Window , vd->ParentWindow );
@@ -992,13 +989,14 @@ static void ImGui_ImplSDL3_ShowWindow(ImGuiViewport* viewport)
992
989
#if defined(_WIN32)
993
990
HWND hwnd = (HWND)viewport->PlatformHandleRaw ;
994
991
995
- // SDL hack: Hide icon from task bar
996
- // Note: SDL 3.0.0+ has a SDL_WINDOW_UTILITY flag which is supported under Windows but the way it create the window breaks our seamless transition .
997
- if (viewport->Flags & ImGuiViewportFlags_NoTaskBarIcon)
992
+ // SDL hack: Show icon in task bar (#7989)
993
+ // Note: SDL_WINDOW_UTILITY can be used to control task bar visibility, but on Windows, it does not affect child windows .
994
+ if (!( viewport->Flags & ImGuiViewportFlags_NoTaskBarIcon) )
998
995
{
999
996
LONG ex_style = ::GetWindowLong (hwnd, GWL_EXSTYLE);
1000
- ex_style &= ~WS_EX_APPWINDOW;
1001
- ex_style |= WS_EX_TOOLWINDOW;
997
+ ex_style |= WS_EX_APPWINDOW;
998
+ ex_style &= ~WS_EX_TOOLWINDOW;
999
+ ::ShowWindow (hwnd, SW_HIDE);
1002
1000
::SetWindowLong (hwnd, GWL_EXSTYLE, ex_style);
1003
1001
}
1004
1002
#endif
0 commit comments