Opened 5 years ago

Closed 4 years ago

Last modified 20 months ago

#18362 closed defect (fixed)

dojo/touch synthetic click breaks "normal" mousedown/click events in IE 11

Reported by: Marko Reiprecht Owned by: bill
Priority: undecided Milestone: 1.10.5
Component: Events Version: 1.10.2
Keywords: Cc:
Blocked By: Blocking:

Description

REPRODUCTION

  • open the attached file "dojo_touch_test.html" in IE 11
  • click on "Click Me" and fast after that on the blue pane

EXPECTED

  • the click counter of the blue pane will count up

ACTUAL

  • all mouse clicks within one second after clicking 'Click Me' are suppressed

EVALUATION dijit/form/Button uses "dojoClick=true" and dojo/touch registers the synthetic click handling because of the PointerEvents? support of IE11.

So any click of a dijit/form/Button will use synthetic click mechanism.

Which means in combination with widgets or plain code using native mouse events (mousedown,click,mouseup) any click after a click on a dijit button will only be noticed after one second.

After scanning dojo/touch for a possible fix I think one solution is to change following line of the stopNativeEvents method:

180: if(clickTracker && !e._dojo_click && ...

It adds a test to check if a clickTracker is still registered and stops the events only if this is true.

Attachments (3)

dojo_touch_test.html (2.4 KB) - added by Marko Reiprecht 5 years ago.
test file for reproduction
touch.patch (748 bytes) - added by Marko Reiprecht 5 years ago.
possible solution patch file
reduced.html (2.0 KB) - added by bill 4 years ago.
reduced test case: just load dojo/touch and set dojoClick=true

Download all attachments as: .zip

Change History (10)

Changed 5 years ago by Marko Reiprecht

Attachment: dojo_touch_test.html added

test file for reproduction

Changed 5 years ago by Marko Reiprecht

Attachment: touch.patch added

possible solution patch file

comment:1 Changed 5 years ago by bill

Component: GeneralEvents
Owner: set to Kris Zyp

Thanks for the report and patch. I'm actually confused about why any of that clickTracker code is running on IE11. I see it's called from

if(hasPointer){
	 // MSPointer (IE10+) already has support for over and out, so we just need to init click support
	domReady(function(){
		win.doc.addEventListener(pointer.down, function(evt){
			doClicks(evt, pointer.move, pointer.up);
		}, true);
	});
}

But it's unclear why it's called. I suppose it's to support those weird modes like dojoClick = {x:50, y:5}.

comment:2 Changed 5 years ago by bill

Owner: changed from Kris Zyp to bill
Status: newassigned

comment:3 Changed 4 years ago by bill

#18479 is a duplicate of this ticket.

Changed 4 years ago by bill

Attachment: reduced.html added

reduced test case: just load dojo/touch and set dojoClick=true

comment:4 Changed 4 years ago by bill

Milestone: tbd1.10.5
Resolution: fixed
Status: assignedclosed

Fixed in master in 98d78d464dfcce4411f04f9f398f8bfc8580f544. Backported to 1.10 in a29142173815c561a8963954b5c7f0d2c45b1b59.

Last edited 4 years ago by bill (previous) (diff)

comment:5 Changed 4 years ago by bill

#18653 is a duplicate of this ticket.

comment:6 Changed 4 years ago by bill

#18571 is a duplicate of this ticket.

comment:7 Changed 20 months ago by Praveena

Hello, I am facing same issue on IE11 with DOJO 1.8.1 version. I am not able to open attachment. Pls provide detail of fix/workaround.

Note: See TracTickets for help on using tickets.