From 5ae781586f1c88d977067804f28dc67844399b57 Mon Sep 17 00:00:00 2001 From: "A. Tombs" Date: Tue, 7 Mar 2017 18:24:31 +0000 Subject: [PATCH] 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. --- src/x11_window.c | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/src/x11_window.c b/src/x11_window.c index c65d3d22..cc8ffd97 100644 --- a/src/x11_window.c +++ b/src/x11_window.c @@ -957,6 +957,17 @@ static void processEvent(XEvent *event) return; } + if (event->type == SelectionClear) + { + handleSelectionClear(event); + return; + } + else if (event->type == SelectionRequest) + { + handleSelectionRequest(event); + return; + } + window = findWindowByHandle(event->xany.window); if (window == NULL) { @@ -1476,18 +1487,6 @@ static void processEvent(XEvent *event) return; } - case SelectionClear: - { - handleSelectionClear(event); - return; - } - - case SelectionRequest: - { - handleSelectionRequest(event); - return; - } - case DestroyNotify: return; }