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.
This commit is contained in:
Sam Lantinga 2015-07-03 09:17:24 -07:00
parent f9d8c59a6f
commit 35c4468f9d

View File

@ -884,24 +884,6 @@ X11_SetWindowBordered(_THIS, SDL_Window * window, SDL_bool bordered)
X11_XCheckIfEvent(display, &event, &isMapNotify, (XPointer)&data->xwindow); X11_XCheckIfEvent(display, &event, &isMapNotify, (XPointer)&data->xwindow);
} }
static SDL_bool
X11_HasWindowManager(const SDL_WindowData *data)
{
const SDL_DisplayData *displaydata =
(SDL_DisplayData *) SDL_GetDisplayForWindow(data->window)->driverdata;
Display *display = data->videodata->display;
const int screen = displaydata->screen;
char atomname[16];
Atom atom;
/* Compliments to Chromium for this technique.
Window Managers are supposed to own "WM_Sx" selections, where
"x" is the screen number (ICCCM 2.8). */
SDL_snprintf(atomname, sizeof (atomname), "WM_S%d", screen);
atom = X11_XInternAtom(display, atomname, True);
return ((atom != None) && (X11_XGetSelectionOwner(display, atom) != None));
}
void void
X11_ShowWindow(_THIS, SDL_Window * window) X11_ShowWindow(_THIS, SDL_Window * window)
{ {
@ -918,7 +900,7 @@ X11_ShowWindow(_THIS, SDL_Window * window)
X11_XFlush(display); X11_XFlush(display);
} }
if (!X11_HasWindowManager(data)) { if (SDL_TRUE != data->videodata->net_wm) {
/* no WM means no FocusIn event, which confuses us. Force it. */ /* no WM means no FocusIn event, which confuses us. Force it. */
X11_XSetInputFocus(display, data->xwindow, RevertToNone, CurrentTime); X11_XSetInputFocus(display, data->xwindow, RevertToNone, CurrentTime);
X11_XFlush(display); X11_XFlush(display);