Skip to content

Commit 7bd97d9

Browse files
committed
prematurely abort ProcSendEvent if a ClientMsg has been fordwarded
Fixes #1065
1 parent e18eb77 commit 7bd97d9

File tree

3 files changed

+8
-6
lines changed

3 files changed

+8
-6
lines changed

nx-X11/programs/Xserver/hw/nxagent/Events.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ ExposeQueue nxagentExposeQueue;
224224

225225
RegionPtr nxagentRemoteExposeRegion = NULL;
226226

227-
static void nxagentForwardRemoteExpose(void);
227+
static Bool nxagentForwardRemoteExpose(void);
228228

229229
static int nxagentClipAndSendExpose(WindowPtr pWin, void * ptr);
230230

@@ -4499,7 +4499,7 @@ int nxagentWaitEvents(Display *dpy, useconds_t msec)
44994499
return 1;
45004500
}
45014501

4502-
void ForwardClientMessage(ClientPtr client, xSendEventReq *stuff)
4502+
Bool ForwardClientMessage(ClientPtr client, xSendEventReq *stuff)
45034503
{
45044504
Atom netwmstate = MakeAtom("_NET_WM_STATE", strlen("_NET_WM_STATE"), False);
45054505
Atom wmchangestate = MakeAtom("WM_CHANGE_STATE", strlen("WM_CHANGE_STATE"), False);
@@ -4542,7 +4542,7 @@ void ForwardClientMessage(ClientPtr client, xSendEventReq *stuff)
45424542
#endif
45434543
}
45444544
else
4545-
return; // ERROR!
4545+
return False; // ERROR!
45464546

45474547
#ifdef DEBUG
45484548
fprintf(stderr, "%s: window [0x%lx]\n", __func__, X.xclient.window);
@@ -4562,8 +4562,10 @@ void ForwardClientMessage(ClientPtr client, xSendEventReq *stuff)
45624562
fprintf(stderr, "%s: send to window [0x%lx]\n", __func__, dest);
45634563
fprintf(stderr, "%s: return Status [%d]\n", __func__, stat);
45644564
#endif
4565+
return True;
45654566
}
45664567
}
4568+
return False;
45674569
}
45684570

45694571
#ifdef NX_DEBUG_INPUT

nx-X11/programs/Xserver/hw/nxagent/Events.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,6 @@ int nxagentPendingEvents(Display *dpy);
222222

223223
int nxagentWaitEvents(Display *, useconds_t msec);
224224

225-
void ForwardClientMessage(ClientPtr client, xSendEventReq *stuff);
225+
Bool ForwardClientMessage(ClientPtr client, xSendEventReq *stuff);
226226

227227
#endif /* __Events_H__ */

nx-X11/programs/Xserver/hw/nxagent/NXevents.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -427,8 +427,8 @@ ProcSendEvent(ClientPtr client)
427427

428428
if (nxagentOption(Rootless) && stuff->event.u.u.type == ClientMessage)
429429
{
430-
ForwardClientMessage(client, stuff);
431-
return Success;
430+
if (ForwardClientMessage(client, stuff))
431+
return Success;
432432
}
433433

434434
if (stuff -> event.u.u.type == SelectionNotify)

0 commit comments

Comments
 (0)