Fixed bug #891
Mason Wheeler 2009-11-23 06:59:48 PST
There's code in SDL_RecreateWindow specifically to handle SDL_WINDOW_FOREIGN,
but it appears to have been overlooked in the allowed_flags constant. This
causes the line
window->flags = (flags & allowed_flags);
to strip SDL_WINDOW_FOREIGN from the window's flags, which breaks some code in
WIN_WindowProc in SDL_win32Events.c that treats foreign windows differently.
This can be trivially fixed by defining allowed_flags as
const Uint32 allowed_flags = (SDL_WINDOW_FULLSCREEN |
SDL_WINDOW_OPENGL |
SDL_WINDOW_BORDERLESS |
SDL_WINDOW_RESIZABLE |
SDL_WINDOW_INPUT_GRABBED |
SDL_WINDOW_FOREIGN);
--- a/src/video/SDL_video.c Tue Nov 24 04:48:12 2009 +0000
+++ b/src/video/SDL_video.c Tue Nov 24 04:59:50 2009 +0000
@@ -862,7 +862,8 @@
SDL_WINDOW_OPENGL |
SDL_WINDOW_BORDERLESS |
SDL_WINDOW_RESIZABLE |
- SDL_WINDOW_INPUT_GRABBED);
+ SDL_WINDOW_INPUT_GRABBED |
+ SDL_WINDOW_FOREIGN);
char *title = window->title;
if ((flags & SDL_WINDOW_OPENGL) && !_this->GL_CreateContext) {