summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJamey Sharp <jamey@minilop.net>2010-05-15 15:51:32 -0700
committerJamey Sharp <jamey@minilop.net>2010-05-19 12:32:34 -0700
commit90e612dcbe370da095d317fac62c80ac2447fa0b (patch)
tree2082dfe8f248626ea0decea4c89de47e1efe535d
parent8033fb6c9792820a82fbdff6a14ff8a7a141ba74 (diff)
Use WriteEventsToClient rather than TryClientEvents where possible.
If filter is NoEventMask (aka CantBeFiltered), grab is null, and the first event is not in the set of "critical events", then TryClientEvents simply calls WriteEventsToClient. In that case, it returns 0 for fake or dead clients, and 1 otherwise. Inline for this special case. Signed-off-by: Jamey Sharp <jamey@minilop.net> Reviewed-by: Julien Cristau <jcristau@debian.org> Reviewed-by: Adam Jackson <ajax@redhat.com>
-rw-r--r--Xext/xvmain.c6
-rw-r--r--dix/selection.c12
-rw-r--r--mi/miexpose.c5
3 files changed, 11 insertions, 12 deletions
diff --git a/Xext/xvmain.c b/Xext/xvmain.c
index 45d59462a..f6d39d030 100644
--- a/Xext/xvmain.c
+++ b/Xext/xvmain.c
@@ -535,8 +535,7 @@ XvdiSendVideoNotify(XvPortPtr pPort, DrawablePtr pDraw, int reason)
event.u.videoNotify.drawable = pDraw->id;
event.u.videoNotify.port = pPort->id;
event.u.videoNotify.reason = reason;
- TryClientEvents(pn->client, NULL, (xEventPtr)&event, 1,
- NoEventMask, NoEventMask, NullGrab);
+ WriteEventsToClient(pn->client, 1, (xEventPtr)&event);
pn = pn->next;
}
@@ -563,8 +562,7 @@ XvdiSendPortNotify(
event.u.portNotify.port = pPort->id;
event.u.portNotify.attribute = attribute;
event.u.portNotify.value = value;
- TryClientEvents(pn->client, NULL, (xEventPtr)&event, 1,
- NoEventMask, NoEventMask, NullGrab);
+ WriteEventsToClient(pn->client, 1, (xEventPtr)&event);
pn = pn->next;
}
diff --git a/dix/selection.c b/dix/selection.c
index 4f592d123..f52638c3a 100644
--- a/dix/selection.c
+++ b/dix/selection.c
@@ -189,8 +189,7 @@ ProcSetSelectionOwner(ClientPtr client)
event.u.selectionClear.time = time.milliseconds;
event.u.selectionClear.window = pSel->window;
event.u.selectionClear.atom = pSel->selection;
- TryClientEvents(pSel->client, NULL, &event, 1, NoEventMask,
- NoEventMask /* CantBeFiltered */, NullGrab);
+ WriteEventsToClient(pSel->client, 1, &event);
}
}
else if (rc == BadMatch)
@@ -296,9 +295,11 @@ ProcConvertSelection(ClientPtr client)
event.u.selectionRequest.selection = stuff->selection;
event.u.selectionRequest.target = stuff->target;
event.u.selectionRequest.property = stuff->property;
- if (TryClientEvents(pSel->client, NULL, &event, 1, NoEventMask,
- NoEventMask /* CantBeFiltered */, NullGrab))
+ if (pSel->client && pSel->client != serverClient && !pSel->client->clientGone)
+ {
+ WriteEventsToClient(pSel->client, 1, &event);
return Success;
+ }
}
event.u.u.type = SelectionNotify;
@@ -307,7 +308,6 @@ ProcConvertSelection(ClientPtr client)
event.u.selectionNotify.selection = stuff->selection;
event.u.selectionNotify.target = stuff->target;
event.u.selectionNotify.property = None;
- TryClientEvents(client, NULL, &event, 1, NoEventMask,
- NoEventMask /* CantBeFiltered */, NullGrab);
+ WriteEventsToClient(client, 1, &event);
return Success;
}
diff --git a/mi/miexpose.c b/mi/miexpose.c
index a50dc5e03..57968dd2a 100644
--- a/mi/miexpose.c
+++ b/mi/miexpose.c
@@ -374,6 +374,8 @@ miSendGraphicsExpose (ClientPtr client, RegionPtr pRgn, XID drawable,
pe->u.graphicsExposure.majorEvent = major;
pe->u.graphicsExposure.minorEvent = minor;
}
+ /* GraphicsExpose is a "critical event", which TryClientEvents
+ * handles specially. */
TryClientEvents(client, NULL, pEvent, numRects,
(Mask)0, NoEventMask, NullGrab);
free(pEvent);
@@ -386,8 +388,7 @@ miSendGraphicsExpose (ClientPtr client, RegionPtr pRgn, XID drawable,
event.u.noExposure.drawable = drawable;
event.u.noExposure.majorEvent = major;
event.u.noExposure.minorEvent = minor;
- TryClientEvents(client, NULL, &event, 1,
- (Mask)0, NoEventMask, NullGrab);
+ WriteEventsToClient(client, 1, &event);
}
}