aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/programs/Xserver
diff options
context:
space:
mode:
Diffstat (limited to 'nx-X11/programs/Xserver')
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c b/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c
index ff8330cc7..5df008bbb 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c
@@ -745,10 +745,15 @@ ProcConvertSelection(register ClientPtr client)
while ((i < NumCurrentSelections) &&
CurrentSelections[i].selection != stuff->selection) i++;
if ((i < NumCurrentSelections) &&
-#ifdef NXAGENT_SERVER
- (CurrentSelections[i].window != None) && (CurrentSelections[i].client != NullClient)
-#else
(CurrentSelections[i].window != None)
+#ifdef NXAGENT_SERVER
+ /*
+ * .window can be set and pointing to our server window to
+ * signal the clipboard owner being on the real X
+ * server. Therefore we need to check .client in addition
+ * to ensure having a local owner.
+ */
+ && (CurrentSelections[i].client != NullClient)
#endif
#ifdef XCSECURITY
&& (!client->CheckAccess ||