commit a7d7af2a419b453188ffe87386455fc26c1306fa
authorSam Lantinga <slouken@libsdl.org>
Fri, 03 Jul 2015 09:17:24 -0700
changeset 9793025e28f516ce
parent 9792 0569d87c68fc
child 9794 5aa6018e18ed
commit a7d7af2a419b453188ffe87386455fc26c1306fa
Author: Benoit Pierre <benoit.pierre@gmail.com>
Date: Fri Jul 3 02:17:10 2015 +0200

fix 14dd48ae5bc43b61b2a0dd0b3177d22edec707ef regression

The window manager detection code in X11_HasWindowManager does not work
with Awesome (http://awesome.naquadah.org/). Remove it, and reuse the
result of the more correct checks in X11_CheckWindowManager.
src/video/x11/SDL_x11window.c
     1.1 --- a/src/video/x11/SDL_x11window.c	Thu Jul 02 20:11:40 2015 +0200
     1.2 +++ b/src/video/x11/SDL_x11window.c	Fri Jul 03 09:17:24 2015 -0700
     1.3 @@ -884,24 +884,6 @@
     1.4      X11_XCheckIfEvent(display, &event, &isMapNotify, (XPointer)&data->xwindow);
     1.5  }
     1.6  
     1.7 -static SDL_bool
     1.8 -X11_HasWindowManager(const SDL_WindowData *data)
     1.9 -{
    1.10 -    const SDL_DisplayData *displaydata =
    1.11 -        (SDL_DisplayData *) SDL_GetDisplayForWindow(data->window)->driverdata;
    1.12 -    Display *display = data->videodata->display;
    1.13 -    const int screen  = displaydata->screen;
    1.14 -    char atomname[16];
    1.15 -    Atom atom;
    1.16 -
    1.17 -    /* Compliments to Chromium for this technique.
    1.18 -        Window Managers are supposed to own "WM_Sx" selections, where
    1.19 -        "x" is the screen number (ICCCM 2.8). */
    1.20 -    SDL_snprintf(atomname, sizeof (atomname), "WM_S%d", screen);
    1.21 -    atom = X11_XInternAtom(display, atomname, True);
    1.22 -    return ((atom != None) && (X11_XGetSelectionOwner(display, atom) != None));
    1.23 -}
    1.24 -
    1.25  void
    1.26  X11_ShowWindow(_THIS, SDL_Window * window)
    1.27  {
    1.28 @@ -918,7 +900,7 @@
    1.29          X11_XFlush(display);
    1.30      }
    1.31  
    1.32 -    if (!X11_HasWindowManager(data)) {
    1.33 +    if (SDL_TRUE != data->videodata->net_wm) {
    1.34          /* no WM means no FocusIn event, which confuses us. Force it. */
    1.35          X11_XSetInputFocus(display, data->xwindow, RevertToNone, CurrentTime);
    1.36          X11_XFlush(display);