From 8d7de791073f9ff25856278a099888af71c7b216 Mon Sep 17 00:00:00 2001 From: "A. Tombs" Date: Tue, 7 Mar 2017 14:21:00 +0000 Subject: [PATCH] Handle X11 Selection* events despite NULL window `processEvent` in `x11_window.c` 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 (tentatively; there is probably an underlying structural change to be made that fixes this properly). --- 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 c65d3d22d..cc8ffd974 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; }