# HG changeset patch # User Edward Rudd # Date 1348682926 14400 # Node ID 5e09ac1aba809c90bd2b44854fab02dcd6eacec8 # Parent 6d17371235d327d78390881935c70c279ee35c55 allocate *Hint structures per Xlib docs diff -r 6d17371235d3 -r 5e09ac1aba80 src/video/x11/SDL_x11sym.h --- a/src/video/x11/SDL_x11sym.h Tue Sep 25 20:58:23 2012 -0700 +++ b/src/video/x11/SDL_x11sym.h Wed Sep 26 14:08:46 2012 -0400 @@ -23,6 +23,8 @@ SDL_X11_MODULE(BASEXLIB) SDL_X11_SYM(XSizeHints*,XAllocSizeHints,(void),(),return) +SDL_X11_SYM(XWMHints*,XAllocWMHints,(void),(),return) +SDL_X11_SYM(XClassHint*,XAllocClassHint,(void),(),return) SDL_X11_SYM(int,XAutoRepeatOn,(Display* a),(a),return) SDL_X11_SYM(int,XAutoRepeatOff,(Display* a),(a),return) SDL_X11_SYM(int,XChangePointerControl,(Display* a,Bool b,Bool c,int d,int e,int f),(a,b,c,d,e,f),return) diff -r 6d17371235d3 -r 5e09ac1aba80 src/video/x11/SDL_x11window.c --- a/src/video/x11/SDL_x11window.c Tue Sep 25 20:58:23 2012 -0700 +++ b/src/video/x11/SDL_x11window.c Wed Sep 26 14:08:46 2012 -0400 @@ -290,9 +290,9 @@ int depth; XSetWindowAttributes xattr; Window w; - XSizeHints sizehints; - XWMHints wmhints; - XClassHint classhints; + XSizeHints *sizehints; + XWMHints *wmhints; + XClassHint *classhints; Atom _NET_WM_WINDOW_TYPE; Atom _NET_WM_WINDOW_TYPE_NORMAL; Atom _NET_WM_PID; @@ -446,28 +446,34 @@ SetWindowBordered(display, screen, w, (window->flags & SDL_WINDOW_BORDERLESS) == 0); + sizehints = XAllocSizeHints(); /* Setup the normal size hints */ - sizehints.flags = 0; + sizehints->flags = 0; if (!(window->flags & SDL_WINDOW_RESIZABLE)) { - sizehints.min_width = sizehints.max_width = window->w; - sizehints.min_height = sizehints.max_height = window->h; - sizehints.flags |= (PMaxSize | PMinSize); + sizehints->min_width = sizehints->max_width = window->w; + sizehints->min_height = sizehints->max_height = window->h; + sizehints->flags |= (PMaxSize | PMinSize); } - sizehints.x = window->x; - sizehints.y = window->y; - sizehints.flags |= USPosition; + sizehints->x = window->x; + sizehints->y = window->y; + sizehints->flags |= USPosition; /* Setup the input hints so we get keyboard input */ - wmhints.input = True; - wmhints.flags = InputHint; + wmhints = XAllocWMHints(); + wmhints->input = True; + wmhints->flags = InputHint; /* Setup the class hints so we can get an icon (AfterStep) */ - classhints.res_name = data->classname; - classhints.res_class = data->classname; + classhints = XAllocClassHint(); + classhints->res_name = data->classname; + classhints->res_class = data->classname; /* Set the size, input and class hints, and define WM_CLIENT_MACHINE and WM_LOCALE_NAME */ - XSetWMProperties(display, w, NULL, NULL, NULL, 0, &sizehints, &wmhints, &classhints); + XSetWMProperties(display, w, NULL, NULL, NULL, 0, sizehints, wmhints, classhints); + XFree(sizehints); + XFree(wmhints); + XFree(classhints); /* Set the PID related to the window for the given hostname, if possible */ if (data->pid > 0) { _NET_WM_PID = XInternAtom(display, "_NET_WM_PID", False);