diff --git a/Source/Core/DolphinWX/GLInterface/GLInterface.h b/Source/Core/DolphinWX/GLInterface/GLInterface.h index acc62fcfc8..bcd0286f41 100644 --- a/Source/Core/DolphinWX/GLInterface/GLInterface.h +++ b/Source/Core/DolphinWX/GLInterface/GLInterface.h @@ -33,9 +33,7 @@ typedef struct { int screen; Window win; Window parent; - // dpy used for glx stuff, evdpy for window events etc. - // evdpy is to be used by XEventThread only - Display *dpy, *evdpy; + Display *dpy; XVisualInfo *vi; XSetWindowAttributes attr; std::thread xEventThread; diff --git a/Source/Core/DolphinWX/GLInterface/GLX.cpp b/Source/Core/DolphinWX/GLInterface/GLX.cpp index 320d0f884a..022efda2cb 100644 --- a/Source/Core/DolphinWX/GLInterface/GLX.cpp +++ b/Source/Core/DolphinWX/GLInterface/GLX.cpp @@ -15,7 +15,7 @@ static PFNGLXSWAPINTERVALSGIPROC glXSwapIntervalSGI = nullptr; // Show the current FPS void cInterfaceGLX::UpdateFPSDisplay(const std::string& text) { - XStoreName(GLWin.evdpy, GLWin.win, text.c_str()); + XStoreName(GLWin.dpy, GLWin.win, text.c_str()); } void cInterfaceGLX::SwapInterval(int Interval) @@ -65,7 +65,6 @@ bool cInterfaceGLX::Create(void *&window_handle) None }; GLWin.dpy = XOpenDisplay(nullptr); - GLWin.evdpy = XOpenDisplay(nullptr); GLWin.parent = (Window)window_handle; GLWin.screen = DefaultScreen(GLWin.dpy); if (GLWin.parent == 0) @@ -134,7 +133,6 @@ void cInterfaceGLX::Shutdown() { glXDestroyContext(GLWin.dpy, GLWin.ctx); XCloseDisplay(GLWin.dpy); - XCloseDisplay(GLWin.evdpy); GLWin.ctx = nullptr; } } diff --git a/Source/Core/DolphinWX/GLInterface/X11_Util.cpp b/Source/Core/DolphinWX/GLInterface/X11_Util.cpp index 2c13563529..b460c19b2e 100644 --- a/Source/Core/DolphinWX/GLInterface/X11_Util.cpp +++ b/Source/Core/DolphinWX/GLInterface/X11_Util.cpp @@ -11,33 +11,33 @@ void cX11Window::CreateXWindow(void) Atom wmProtocols[1]; // Setup window attributes - GLWin.attr.colormap = XCreateColormap(GLWin.evdpy, + GLWin.attr.colormap = XCreateColormap(GLWin.dpy, GLWin.parent, GLWin.vi->visual, AllocNone); GLWin.attr.event_mask = KeyPressMask | StructureNotifyMask | FocusChangeMask; - GLWin.attr.background_pixel = BlackPixel(GLWin.evdpy, GLWin.screen); + GLWin.attr.background_pixel = BlackPixel(GLWin.dpy, GLWin.screen); GLWin.attr.border_pixel = 0; // Create the window - GLWin.win = XCreateWindow(GLWin.evdpy, GLWin.parent, + GLWin.win = XCreateWindow(GLWin.dpy, GLWin.parent, 0, 0, 1, 1, 0, GLWin.vi->depth, InputOutput, GLWin.vi->visual, CWBorderPixel | CWBackPixel | CWColormap | CWEventMask, &GLWin.attr); - wmProtocols[0] = XInternAtom(GLWin.evdpy, "WM_DELETE_WINDOW", True); - XSetWMProtocols(GLWin.evdpy, GLWin.win, wmProtocols, 1); - XSetStandardProperties(GLWin.evdpy, GLWin.win, "GPU", "GPU", None, nullptr, 0, nullptr); - XMapRaised(GLWin.evdpy, GLWin.win); - XSync(GLWin.evdpy, True); + wmProtocols[0] = XInternAtom(GLWin.dpy, "WM_DELETE_WINDOW", True); + XSetWMProtocols(GLWin.dpy, GLWin.win, wmProtocols, 1); + XSetStandardProperties(GLWin.dpy, GLWin.win, "GPU", "GPU", None, nullptr, 0, nullptr); + XMapRaised(GLWin.dpy, GLWin.win); + XSync(GLWin.dpy, True); GLWin.xEventThread = std::thread(&cX11Window::XEventThread, this); } void cX11Window::DestroyXWindow(void) { - XUnmapWindow(GLWin.evdpy, GLWin.win); + XUnmapWindow(GLWin.dpy, GLWin.win); GLWin.win = 0; if (GLWin.xEventThread.joinable()) GLWin.xEventThread.join(); - XFreeColormap(GLWin.evdpy, GLWin.attr.colormap); + XFreeColormap(GLWin.dpy, GLWin.attr.colormap); } void cX11Window::XEventThread() @@ -45,16 +45,16 @@ void cX11Window::XEventThread() while (GLWin.win) { XEvent event; - for (int num_events = XPending(GLWin.evdpy); num_events > 0; num_events--) + for (int num_events = XPending(GLWin.dpy); num_events > 0; num_events--) { - XNextEvent(GLWin.evdpy, &event); + XNextEvent(GLWin.dpy, &event); switch (event.type) { case ConfigureNotify: GLInterface->SetBackBufferDimensions(event.xconfigure.width, event.xconfigure.height); break; case ClientMessage: if ((unsigned long) event.xclient.data.l[0] == - XInternAtom(GLWin.evdpy, "WM_DELETE_WINDOW", False)) + XInternAtom(GLWin.dpy, "WM_DELETE_WINDOW", False)) Host_Message(WM_USER_STOP); break; default: