Fixed bug #891
authorSam Lantinga <slouken@libsdl.org>
Tue, 24 Nov 2009 04:59:50 +0000
changeset 3486 c87dbbde2bc2
parent 3485 e77a69aae239
child 3487 24d13328c44a
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);
src/video/SDL_video.c
--- 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) {