diff options
author | marha <marha@users.sourceforge.net> | 2013-10-16 11:30:08 +0200 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2013-10-16 11:30:08 +0200 |
commit | 56e12b1310b1b52d00bc27e919d915255af5bf03 (patch) | |
tree | 19379a18fe9a678a109397837339820892101e4b /xorg-server/dix/events.c | |
parent | c5883f8af060c0a300a29e732e8bb893bc8e0eca (diff) | |
parent | 9e23b44bfe1e6e85231b1c07d945cadf0c868648 (diff) | |
download | vcxsrv-56e12b1310b1b52d00bc27e919d915255af5bf03.tar.gz vcxsrv-56e12b1310b1b52d00bc27e919d915255af5bf03.tar.bz2 vcxsrv-56e12b1310b1b52d00bc27e919d915255af5bf03.zip |
Merge remote-tracking branch 'origin/released'
* origin/released:
fontconfig libxcb libxcb/xcb-proto xserver mesa pixman xkbcomp git update 16 oct 2013
Conflicts:
mesalib/src/mesa/drivers/dri/common/drisw_util.c
pixman/pixman/pixman-mmx.c
Diffstat (limited to 'xorg-server/dix/events.c')
-rw-r--r-- | xorg-server/dix/events.c | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/xorg-server/dix/events.c b/xorg-server/dix/events.c index cfaf1ae3c..191a49377 100644 --- a/xorg-server/dix/events.c +++ b/xorg-server/dix/events.c @@ -4146,6 +4146,9 @@ DeliverOneGrabbedEvent(InternalEvent *event, DeviceIntPtr dev, GrabPtr grab = grabinfo->grab; Mask filter; + if (grab->grabtype != level) + return 0; + switch (level) { case XI2: rc = EventToXI2(event, &xE); @@ -4257,22 +4260,17 @@ DeliverGrabbedEvent(InternalEvent *event, DeviceIntPtr thisDev, sendCore = (IsMaster(thisDev) && thisDev->coreEvents); /* try core event */ - if (sendCore && grab->grabtype == CORE) { - deliveries = DeliverOneGrabbedEvent(event, thisDev, CORE); - } - - if (!deliveries) { - deliveries = DeliverOneGrabbedEvent(event, thisDev, XI2); - } - - if (!deliveries) { - deliveries = DeliverOneGrabbedEvent(event, thisDev, XI); - } + if ((sendCore && grab->grabtype == CORE) || grab->grabtype != CORE) + deliveries = DeliverOneGrabbedEvent(event, thisDev, grab->grabtype); if (deliveries && (event->any.type == ET_Motion)) thisDev->valuator->motionHintWindow = grab->window; } - if (deliveries && !deactivateGrab && event->any.type != ET_Motion) { + if (deliveries && !deactivateGrab && + (event->any.type == ET_KeyPress || + event->any.type == ET_KeyRelease || + event->any.type == ET_ButtonPress || + event->any.type == ET_ButtonRelease)) { switch (grabinfo->sync.state) { case FREEZE_BOTH_NEXT_EVENT: dev = GetPairedDevice(thisDev); |