aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/dix/events.c
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2011-12-05 08:05:28 +0100
committermarha <marha@users.sourceforge.net>2011-12-05 08:05:28 +0100
commitfab1dd1d0549bbb52c3598e57aad4f0bfa5e55cf (patch)
treec59c3e084f79bd1f6060f9a5cedb5c48d4da14ee /xorg-server/dix/events.c
parent5d6e342b3c2d0d3607b184b1472b816228839e3f (diff)
parent528f5bd58a139174170c4130c67dca30193c9057 (diff)
downloadvcxsrv-fab1dd1d0549bbb52c3598e57aad4f0bfa5e55cf.tar.gz
vcxsrv-fab1dd1d0549bbb52c3598e57aad4f0bfa5e55cf.tar.bz2
vcxsrv-fab1dd1d0549bbb52c3598e57aad4f0bfa5e55cf.zip
Merge remote-tracking branch 'origin/released'
Conflicts: xorg-server/dix/dispatch.c
Diffstat (limited to 'xorg-server/dix/events.c')
-rw-r--r--xorg-server/dix/events.c25
1 files changed, 13 insertions, 12 deletions
diff --git a/xorg-server/dix/events.c b/xorg-server/dix/events.c
index 68d0a529d..12b601449 100644
--- a/xorg-server/dix/events.c
+++ b/xorg-server/dix/events.c
@@ -469,10 +469,11 @@ GetXI2MaskByte(unsigned char xi2mask[][XI2MASKSIZE], DeviceIntPtr dev, int event
/**
- * Return the windows complete XI2 mask for the given XI2 event type.
+ * @return TRUE if the mask is set for this event from this device on the
+ * window, or FALSE otherwise.
*/
-Mask
-GetWindowXI2Mask(DeviceIntPtr dev, WindowPtr win, xEvent* ev)
+Bool
+WindowXI2MaskIsset(DeviceIntPtr dev, WindowPtr win, xEvent* ev)
{
OtherInputMasks *inputMasks = wOtherInputMasks(win);
int filter;
@@ -484,7 +485,7 @@ GetWindowXI2Mask(DeviceIntPtr dev, WindowPtr win, xEvent* ev)
evtype = ((xGenericEvent*)ev)->evtype;
filter = GetEventFilter(dev, ev);
- return (GetXI2MaskByte(inputMasks->xi2mask, dev, evtype) & filter);
+ return !!(GetXI2MaskByte(inputMasks->xi2mask, dev, evtype) & filter);
}
Mask
@@ -2078,7 +2079,7 @@ GetClientsForDelivery(DeviceIntPtr dev, WindowPtr win,
{
OtherInputMasks *inputMasks = wOtherInputMasks(win);
/* Has any client selected for the event? */
- if (!GetWindowXI2Mask(dev, win, events))
+ if (!WindowXI2MaskIsset(dev, win, events))
goto out;
*clients = inputMasks->inputClients;
} else {
@@ -3793,14 +3794,13 @@ CheckPassiveGrabsOnWindow(
}
if (!activate)
- {
- return grab;
- }
+ break;
else if (!GetXIType(event) && !GetCoreType(event))
{
ErrorF("Event type %d in CheckPassiveGrabsOnWindow is neither"
" XI 1.x nor core\n", event->any.type);
- return NULL;
+ grab = NULL;
+ break;
}
/* The only consumers of corestate are Xi 1.x and core events, which
@@ -3866,9 +3866,10 @@ CheckPassiveGrabsOnWindow(
}
free(xE);
- return grab;
+ break;
}
- return NULL;
+
+ return grab;
#undef CORE_MATCH
#undef XI_MATCH
#undef XI2_MATCH
@@ -4638,7 +4639,7 @@ DeviceEnterLeaveEvent(
TryClientEvents(rClient(grab), mouse, (xEvent*)event, 1, mask,
filter, grab);
} else {
- if (!GetWindowXI2Mask(mouse, pWin, (xEvent*)event))
+ if (!WindowXI2MaskIsset(mouse, pWin, (xEvent*)event))
goto out;
DeliverEventsToWindow(mouse, pWin, (xEvent*)event, 1, filter,
NullGrab);