Commit 8460b069 authored by Sam Lantinga's avatar Sam Lantinga

Fixed bug #278

Added the GFX_Display to the wminfo structure, contributed by Eric

--HG--
branch : SDL-1.2
extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/branches/SDL-1.2%402107
parent 6a16eb68
...@@ -86,7 +86,8 @@ typedef struct SDL_SysWMinfo { ...@@ -86,7 +86,8 @@ typedef struct SDL_SysWMinfo {
Display *display; /* The X11 display */ Display *display; /* The X11 display */
Window window; /* The X11 display window */ Window window; /* The X11 display window */
/* These locking functions should be called around /* These locking functions should be called around
any X11 functions using the display variable. any X11 functions using the display variable,
but not the gfxdisplay variable.
They lock the event thread, so should not be They lock the event thread, so should not be
called around event functions or from event filters. called around event functions or from event filters.
*/ */
...@@ -96,6 +97,9 @@ typedef struct SDL_SysWMinfo { ...@@ -96,6 +97,9 @@ typedef struct SDL_SysWMinfo {
/* Introduced in SDL 1.0.2 */ /* Introduced in SDL 1.0.2 */
Window fswindow; /* The X11 fullscreen window */ Window fswindow; /* The X11 fullscreen window */
Window wmwindow; /* The X11 managed input window */ Window wmwindow; /* The X11 managed input window */
/* Introduced in SDL 1.2.12 */
Display *gfxdisplay; /* The X11 display to which rendering is done */
} x11; } x11;
} info; } info;
} SDL_SysWMinfo; } SDL_SysWMinfo;
......
...@@ -398,6 +398,8 @@ static void unlock_display(void) ...@@ -398,6 +398,8 @@ static void unlock_display(void)
XSync(SDL_Display, False); XSync(SDL_Display, False);
SDL_Unlock_EventThread(); SDL_Unlock_EventThread();
} }
#include <stdio.h>
int X11_GetWMInfo(_THIS, SDL_SysWMinfo *info) int X11_GetWMInfo(_THIS, SDL_SysWMinfo *info)
{ {
if ( info->version.major <= SDL_MAJOR_VERSION ) { if ( info->version.major <= SDL_MAJOR_VERSION ) {
...@@ -410,6 +412,14 @@ int X11_GetWMInfo(_THIS, SDL_SysWMinfo *info) ...@@ -410,6 +412,14 @@ int X11_GetWMInfo(_THIS, SDL_SysWMinfo *info)
info->info.x11.fswindow = FSwindow; info->info.x11.fswindow = FSwindow;
info->info.x11.wmwindow = WMwindow; info->info.x11.wmwindow = WMwindow;
} }
if ( SDL_VERSIONNUM(info->version.major,
info->version.minor,
info->version.patch) >= 1212 ) {
info->info.x11.gfxdisplay = GFX_Display;
}
info->info.x11.lock_func = lock_display; info->info.x11.lock_func = lock_display;
info->info.x11.unlock_func = unlock_display; info->info.x11.unlock_func = unlock_display;
return(1); return(1);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment