X11: Handle Selection* events despite NULL window
X11 event processing currently discards events that can not be mapped to a current GLFW window. However, this breaks clipboard functionality by failing to respond to SelectionRequest and SelectionClear events. This commit moves processing of these important clipboard events to before the NULL window test so that they are always considered. Fixes #961. Closes #963.
This commit is contained in:
parent
798d7c6d68
commit
5ae781586f
@ -957,6 +957,17 @@ static void processEvent(XEvent *event)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (event->type == SelectionClear)
|
||||||
|
{
|
||||||
|
handleSelectionClear(event);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else if (event->type == SelectionRequest)
|
||||||
|
{
|
||||||
|
handleSelectionRequest(event);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
window = findWindowByHandle(event->xany.window);
|
window = findWindowByHandle(event->xany.window);
|
||||||
if (window == NULL)
|
if (window == NULL)
|
||||||
{
|
{
|
||||||
@ -1476,18 +1487,6 @@ static void processEvent(XEvent *event)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
case SelectionClear:
|
|
||||||
{
|
|
||||||
handleSelectionClear(event);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
case SelectionRequest:
|
|
||||||
{
|
|
||||||
handleSelectionRequest(event);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
case DestroyNotify:
|
case DestroyNotify:
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user