Opened 6 years ago

Closed 6 years ago

Last modified 6 years ago

#17815 closed defect (fixed)

dojo/touch: repeated click events when onclick handler launches alert() / confirm() (iOS)

Reported by: Sebastien Brunot Owned by: bill
Priority: undecided Milestone: 1.10
Component: Events Version:
Keywords: Cc:
Blocked By: Blocking:

Description

Using the master branch of dijit to test on an iOS 6.0.3 Ipad mini, I found the following issue with test page test_Dialog:

  • click "Show close prevention", and the click the ok button on the dialog. The confirmation dialog pops up: click OK. Problem: the confirmation dialog is displayed a second time.

Change History (7)

comment:1 Changed 6 years ago by bill

Component: DijitEvents
Owner: set to bill
Status: newassigned
Summary: dijit Dialog issue on iOS 6.0.3 (iPad mini)double touch events when dojo/touch.click handler launches alert() / confirm() (iOS)

Apparently an issue/limitation of dojo/touch w.r.t iOS's problematic faux mouse events. Normally dojo/touch ignores the faux mousedown/mouseup events because they occur immediately after the touchstart/touchend events. But when the dojo.click event triggers an alert() or confirm() dialog, the mousedown/mouseup events are delayed until after the alert()/confirm() is closed.

comment:2 Changed 6 years ago by bill

The only solution I can think of is to stop listening to mouse events on iOS and Android. It's unclear if that would break bluetooth/USB mice, because I don't know if they just generate mouse events, or if they generate touch events [too].

comment:3 Changed 6 years ago by bill

PS: Actually it's more complicated than that, because the event we are listening to is "click". We fire a synthetic click event after the touchend, and then suppress the real click event that comes 300ms afterwards. But in the case of the confirm() or alert(), the real click event comes 5 seconds after the synthetic click, and thus we don't suppress it.

comment:4 Changed 6 years ago by bill

Milestone: tbd1.10
Summary: double touch events when dojo/touch.click handler launches alert() / confirm() (iOS)dojo/touch: repeated click events when onclick handler launches alert() / confirm() (iOS)

comment:5 Changed 6 years ago by Bill Keese <bill@…>

Resolution: fixed
Status: assignedclosed

In a776e1ec8117dccfce8c8ad88e571a50e89db82a/dojo:

Error: Processor CommitTicketReference failed
Unsupported version control system "git": Can't find an appropriate component, maybe the corresponding plugin was not enabled? 

comment:6 Changed 6 years ago by Bill Keese <bill@…>

In 23a297a605051c6bcfa0fd91ee163c69d2f21fda/dojo:

Error: Processor CommitTicketReference failed
Unsupported version control system "git": Can't find an appropriate component, maybe the corresponding plugin was not enabled? 

comment:7 Changed 6 years ago by Bill Keese <bill@…>

In 5c63d92f3c63f6d75cbe88d554bc2eb2c9a452fb/dojo:

Error: Processor CommitTicketReference failed
Unsupported version control system "git": Can't find an appropriate component, maybe the corresponding plugin was not enabled? 
Note: See TracTickets for help on using tickets.