X11: Make selection event checks include window

This commit is contained in:
Camilla Berglund 2016-09-06 15:15:23 +02:00
parent ccfd6dde45
commit afb6e485b7

View File

@ -138,6 +138,9 @@ static int getWindowState(_GLFWwindow* window)
// //
static Bool isSelectionEvent(Display* display, XEvent* event, XPointer pointer) static Bool isSelectionEvent(Display* display, XEvent* event, XPointer pointer)
{ {
if (event->xany.window != _glfw.x11.helperWindowHandle)
return False;
return event->type == SelectionRequest || return event->type == SelectionRequest ||
event->type == SelectionNotify || event->type == SelectionNotify ||
event->type == SelectionClear; event->type == SelectionClear;
@ -2272,8 +2275,13 @@ const char* _glfwPlatformGetClipboardString(_GLFWwindow* window)
_glfw.x11.helperWindowHandle, _glfw.x11.helperWindowHandle,
CurrentTime); CurrentTime);
while (!XCheckTypedEvent(_glfw.x11.display, SelectionNotify, &event)) while (!XCheckTypedWindowEvent(_glfw.x11.display,
_glfw.x11.helperWindowHandle,
SelectionNotify,
&event))
{
waitForEvent(NULL); waitForEvent(NULL);
}
if (event.xselection.property == None) if (event.xselection.property == None)
continue; continue;