From 9e23b44bfe1e6e85231b1c07d945cadf0c868648 Mon Sep 17 00:00:00 2001 From: marha Date: Wed, 16 Oct 2013 11:23:27 +0200 Subject: fontconfig libxcb libxcb/xcb-proto xserver mesa pixman xkbcomp git update 16 oct 2013 xserver commit 7cf1b595c8c8f9776a39559d2878cf90af3f2859 libxcb commit e4e0c6eec861f4c69da12060dc8dbe7a63fa5eb6 libxcb/xcb-proto commit 55c75accecf0e76d2aa38656efd2be4044b9e643 xkbcomp commit 839ccda42d8b088d94324cd77c4be954859914d3 pixman commit 9e81419ed5c0ee490ddacf7bada516a25cae87eb fontconfig commit 5406919c5e186f74ccdade1a65344ce7b5c56a64 mesa commit 6e444a72c1f9e4446e025b8cb780523cb89f0584 --- xorg-server/dix/events.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) (limited to 'xorg-server/dix/events.c') diff --git a/xorg-server/dix/events.c b/xorg-server/dix/events.c index 086601a69..7a1b1c3c6 100644 --- a/xorg-server/dix/events.c +++ b/xorg-server/dix/events.c @@ -4142,6 +4142,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); @@ -4253,22 +4256,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); -- cgit v1.2.3