diff options
author | Chase Douglas <chase.douglas@canonical.com> | 2012-04-10 17:12:40 -0700 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2012-04-16 11:30:02 +1000 |
commit | 210cd12c47d063f97915ff23292b61d09abfd73a (patch) | |
tree | 3377ee38fd6c62bc87c415fbf79efcf08a617534 | |
parent | 82a1ae0af3b136371638659c3e909880a99f721c (diff) |
Don't update listener after deactivating implicit pointer grab
After the pointer grab is deactivated, the touch listener record is
updated at the end of DeliverTouchEmulatedEvent. However, the touch
record is ended when the grab is deactivated, so the update to the
listener record is in an array of memory that has been freed.
Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r-- | Xi/exevents.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/Xi/exevents.c b/Xi/exevents.c index ff2224094..31171239f 100644 --- a/Xi/exevents.c +++ b/Xi/exevents.c @@ -1389,8 +1389,10 @@ DeliverTouchEmulatedEvent(DeviceIntPtr dev, TouchPointInfoPtr ti, if (ev->any.type == ET_TouchEnd && !dev->button->buttonsDown && - dev->deviceGrab.fromPassiveGrab && GrabIsPointerGrab(grab)) + dev->deviceGrab.fromPassiveGrab && GrabIsPointerGrab(grab)) { (*dev->deviceGrab.DeactivateGrab) (dev); + return Success; + } } } else { |