changeset 4510:6f8175ad0335

Implemented X11 system window manager info for SDL 1.3. It's simple. Really.
author Sam Lantinga <slouken@libsdl.org>
date Mon, 12 Jul 2010 01:20:57 -0700
parents 8e91c3947210
children ae7799d16c87 03dcb795c583
files include/SDL_syswm.h src/video/x11/SDL_x11window.c
diffstat 2 files changed, 8 insertions(+), 20 deletions(-) [+]
line wrap: on
line diff
--- a/include/SDL_syswm.h	Mon Jul 12 00:49:26 2010 -0700
+++ b/include/SDL_syswm.h	Mon Jul 12 01:20:57 2010 -0700
@@ -106,24 +106,6 @@
         {
             Display *display;   /**< The X11 display */
             Window window;      /**< The X11 display window */
-            /**
-             *  These locking functions should be called around
-             *  any X11 functions using the display variable.
-             *  They lock the event thread, so should not be
-             *  called around event functions or from event filters.
-             */
-            /*@{*/
-            void (*lock_func) (void);
-            void (*unlock_func) (void);
-            /*@}*/
-
-            /**
-             *  Introduced in SDL 1.0.2.
-             */
-            /*@{*/
-            Window fswindow;    /**< The X11 fullscreen window */
-            Window wmwindow;    /**< The X11 managed input window */
-            /*@}*/
         } x11;
     } info;
 };
--- a/src/video/x11/SDL_x11window.c	Mon Jul 12 00:49:26 2010 -0700
+++ b/src/video/x11/SDL_x11window.c	Mon Jul 12 01:20:57 2010 -0700
@@ -1014,8 +1014,14 @@
 SDL_bool
 X11_GetWindowWMInfo(_THIS, SDL_Window * window, SDL_SysWMinfo * info)
 {
-    if (info->version.major <= SDL_MAJOR_VERSION) {
-        /* FIXME! */
+    SDL_WindowData *data = (SDL_WindowData *) window->driverdata;
+    Display *display = data->videodata->display;
+
+    if (info->version.major == SDL_MAJOR_VERSION &&
+        info->version.minor == SDL_MINOR_VERSION) {
+        info->subsystem = SDL_SYSWM_X11;
+        info->info.x11.display = display;
+        info->info.x11.window = data->xwindow;
         return SDL_TRUE;
     } else {
         SDL_SetError("Application not compiled with SDL %d.%d\n",