diff --git a/src/video/windows/SDL_windowswindow.c b/src/video/windows/SDL_windowswindow.c index 34ebc12e2..55fc54d3f 100644 --- a/src/video/windows/SDL_windowswindow.c +++ b/src/video/windows/SDL_windowswindow.c @@ -636,6 +636,15 @@ WIN_DestroyWindow(_THIS, SDL_Window * window) ReleaseDC(data->hwnd, data->hdc); if (data->created) { DestroyWindow(data->hwnd); + } else { + /* Restore any original event handler... */ + if (data->wndproc != NULL) { +#ifdef GWLP_WNDPROC + SetWindowLongPtr(hwnd, GWLP_WNDPROC, (LONG_PTR) data->wndproc); +#else + SetWindowLong(hwnd, GWL_WNDPROC, (LONG_PTR) data->wndproc); +#endif + } } SDL_free(data); }