diff --git a/src/video/windows/SDL_windowsevents.c b/src/video/windows/SDL_windowsevents.c index e5903fdd3..7370f9e5c 100644 --- a/src/video/windows/SDL_windowsevents.c +++ b/src/video/windows/SDL_windowsevents.c @@ -1271,7 +1271,15 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) /* We'll do our own drawing, prevent flicker */ case WM_ERASEBKGND: + if (!data->videodata->cleared) { + RECT client_rect; + HBRUSH brush; + data->videodata->cleared = SDL_TRUE; + GetClientRect(hwnd, &client_rect); + brush = CreateSolidBrush(0); + FillRect(GetDC(hwnd), &client_rect, brush); + DeleteObject(brush); } return (1); diff --git a/src/video/windows/SDL_windowsvideo.h b/src/video/windows/SDL_windowsvideo.h index e07c34443..cdebb4cfa 100644 --- a/src/video/windows/SDL_windowsvideo.h +++ b/src/video/windows/SDL_windowsvideo.h @@ -394,6 +394,7 @@ typedef struct SDL_VideoData #endif /*!defined(__XBOXONE__) && !defined(__XBOXSERIES__)*/ SDL_bool dpi_scaling_enabled; + SDL_bool cleared; #ifndef SDL_DISABLE_WINDOWS_IME SDL_bool ime_com_initialized;