X11 backend: Get rid of server roundtrip just to wake up the event loop

This commit is contained in:
Kovid Goyal 2019-04-24 13:42:26 +05:30
parent 2df97e309b
commit b6267d4a8c
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

16
glfw/x11_window.c vendored
View File

@ -1162,12 +1162,6 @@ static void processEvent(XEvent *event)
return;
}
if (event->type == ClientMessage && event->xclient.message_type == _glfw.x11.NULL_ && event->xproperty.window == _glfw.x11.helperWindowHandle)
{
// empty event generated by _glfwPlatformPostEmptyEvent
return;
}
if (XFindContext(_glfw.x11.display,
event->xany.window,
_glfw.x11.context,
@ -2562,16 +2556,6 @@ void _glfwPlatformWaitEventsTimeout(double timeout)
void _glfwPlatformPostEmptyEvent(void)
{
XEvent event;
memset(&event, 0, sizeof(event));
event.type = ClientMessage;
event.xclient.window = _glfw.x11.helperWindowHandle;
event.xclient.format = 32; // Data is 32-bit longs
event.xclient.message_type = _glfw.x11.NULL_;
XSendEvent(_glfw.x11.display, _glfw.x11.helperWindowHandle, False, 0, &event);
XFlush(_glfw.x11.display);
while (write(_glfw.x11.eventLoopData.wakeupFds[1], "w", 1) < 0 && errno == EINTR);
}