Mercurial > sdl-ios-xcode
view test/testnativex11.c @ 3486:c87dbbde2bc2
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);
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Tue, 24 Nov 2009 04:59:50 +0000 |
parents | 089a77aebb7d |
children |
line wrap: on
line source
#include "testnative.h" #ifdef TEST_NATIVE_X11 static void *CreateWindowX11(int w, int h); static void DestroyWindowX11(void *window); NativeWindowFactory X11WindowFactory = { "x11", CreateWindowX11, DestroyWindowX11 }; static Display *dpy; static void * CreateWindowX11(int w, int h) { Window window = 0; dpy = XOpenDisplay(NULL); if (dpy) { window = XCreateSimpleWindow(dpy, DefaultRootWindow(dpy), 0, 0, w, h, 0, 0, 0); XMapRaised(dpy, window); XSync(dpy, False); } return (void *) window; } static void DestroyWindowX11(void *window) { if (dpy) { XDestroyWindow(dpy, (Window) window); XCloseDisplay(dpy); } } #endif