Skip to content

Commit d4ea492

Browse files
uli42sunweaver
authored andcommitted
prematurely abort ProcSendEvent if a ClientMsg has been fordwarded
Fixes #1065
1 parent b58d665 commit d4ea492

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

@@ -4505,7 +4505,7 @@ int nxagentWaitEvents(Display *dpy, useconds_t msec)
45054505
return 1;
45064506
}
45074507

4508-
void ForwardClientMessage(ClientPtr client, xSendEventReq *stuff)
4508+
Bool ForwardClientMessage(ClientPtr client, xSendEventReq *stuff)
45094509
{
45104510
Atom netwmstate = MakeAtom("_NET_WM_STATE", strlen("_NET_WM_STATE"), False);
45114511
Atom wmchangestate = MakeAtom("WM_CHANGE_STATE", strlen("WM_CHANGE_STATE"), False);
@@ -4548,7 +4548,7 @@ void ForwardClientMessage(ClientPtr client, xSendEventReq *stuff)
45484548
#endif
45494549
}
45504550
else
4551-
return; // ERROR!
4551+
return False; // ERROR!
45524552

45534553
#ifdef DEBUG
45544554
fprintf(stderr, "%s: window [0x%lx]\n", __func__, X.xclient.window);
@@ -4568,8 +4568,10 @@ void ForwardClientMessage(ClientPtr client, xSendEventReq *stuff)
45684568
fprintf(stderr, "%s: send to window [0x%lx]\n", __func__, dest);
45694569
fprintf(stderr, "%s: return Status [%d]\n", __func__, stat);
45704570
#endif
4571+
return True;
45714572
}
45724573
}
4574+
return False;
45734575
}
45744576

45754577
#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
@@ -429,8 +429,8 @@ ProcSendEvent(ClientPtr client)
429429

430430
if (nxagentOption(Rootless) && stuff->event.u.u.type == ClientMessage)
431431
{
432-
ForwardClientMessage(client, stuff);
433-
return Success;
432+
if (ForwardClientMessage(client, stuff))
433+
return Success;
434434
}
435435

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

0 commit comments

Comments
 (0)