diff --git a/Xi/exevents.c b/Xi/exevents.c index 9f6ec84b9..494d07e20 100644 --- a/Xi/exevents.c +++ b/Xi/exevents.c @@ -1888,6 +1888,12 @@ DeliverTouchEndEvent(DeviceIntPtr dev, TouchPointInfoPtr ti, InternalEvent *ev, if (normal_end) listener->state = LISTENER_HAS_END; } + else if (ev->device_event.flags & TOUCH_ACCEPT) { + /* Touch has been accepted by its owner, which is not this listener */ + if (listener->state != LISTENER_HAS_END) + rc = DeliverOneTouchEvent(client, dev, ti, grab, win, ev); + listener->state = LISTENER_HAS_END; + } out: return rc; diff --git a/Xi/xiproperty.c b/Xi/xiproperty.c index ca731042c..4beedcf6d 100644 --- a/Xi/xiproperty.c +++ b/Xi/xiproperty.c @@ -771,6 +771,8 @@ XIChangeDeviceProperty(DeviceIntPtr dev, Atom property, Atom type, &new_value, checkonly); if (checkonly && rc != Success) { free(new_value.data); + if (add) + XIDestroyDeviceProperty(prop); return rc; } } diff --git a/test/Makefile.am b/test/Makefile.am index aa018c962..34f53fc1e 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -23,11 +23,9 @@ INCLUDES += -I$(top_srcdir)/hw/xfree86/parser \ endif TEST_LDADD=libxservertest.la $(XORG_SYS_LIBS) $(XSERVER_SYS_LIBS) $(GLX_SYS_LIBS) -if XORG if SPECIAL_DTRACE_OBJECTS TEST_LDADD += $(OS_LIB) $(DIX_LIB) endif -endif xkb_LDADD=$(TEST_LDADD) input_LDADD=$(TEST_LDADD)