Opened 8 years ago

Closed 4 years ago

#14391 closed defect (patchwelcome)

listening for gestures prevent some other events to be received

Reported by: cjolif Owned by: Evan
Priority: high Milestone: 1.13
Component: Events Version: 1.7.0
Keywords: Cc:
Blocked By: Blocking:

Description

If I register a tap.doubletap listener on an outer div, I won't anymore receive events on a inner div.

See attached test case.

Attachments (3)

test_block.html (1.7 KB) - added by cjolif 8 years ago.
14391.patch (371 bytes) - added by Evan 8 years ago.
One possible fix, but still more tests, seems it brings some side effects to swipe
test_block_evan.html (2.5 KB) - added by Evan 8 years ago.
When running on mobile devices, all touch and gesture events are fired appropriately on the inner node

Download all attachments as: .zip

Change History (9)

Changed 8 years ago by cjolif

Attachment: test_block.html added

comment:1 Changed 8 years ago by bill

Milestone: tbd

comment:2 Changed 8 years ago by eabe

I managed to reproduce the problem on both IOS and Android devices. However, it does seem to work fine with mouse input (FF 8 and Chrome 15)

comment:3 Changed 8 years ago by cjolif

This prevents treemap for working. I will have to get rid of dojox/gesture use in treemap if that one is not solved.

Changed 8 years ago by Evan

Attachment: 14391.patch added

One possible fix, but still more tests, seems it brings some side effects to swipe

Changed 8 years ago by Evan

Attachment: test_block_evan.html added

When running on mobile devices, all touch and gesture events are fired appropriately on the inner node

comment:4 Changed 8 years ago by Evan

Hey Guys,

I had a check, when running on mobile devices, only mouse events are not fired on inner node, all touch and gesture events are fired appropriately, please try the attached test_block_evan.html on mobile.

So I suppose this won't be a problem and break treemap at this moment since you will be using

on(innerNode, touch.release, func(){...})

and it shall work well on either desktop(mapped to ‘onmouseup’) or mobiles(mapped to ’ontouchend‘)?

The fix is still not ideal since in most cases(e.g. swipe), we do need to preventDefault() the native event to have more control for gestures. And this will probably be part of #13048

comment:5 Changed 8 years ago by cjolif

Evan, thanks for the hint, using touch.release indeed made it works. Still if you can come up with a fix at some point I think it would worth it.

comment:6 Changed 4 years ago by dylan

Milestone: tbd1.12
Resolution: patchwelcome
Status: newclosed

Given that no one has shown interest in creating a patch in the past 4+ years, I'm closing this as patchwelcome.

Note: See TracTickets for help on using tickets.