fix: add touch events on microtask to avoid Chromium bug (#12735)

pull/12718/head
Dominic Gannaway 3 months ago committed by GitHub
parent 76cb89c750
commit 8bde2d5710
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -0,0 +1,5 @@
---
'svelte': patch
---
fix: add touch events on microtask to avoid Chromium bug

@ -59,8 +59,12 @@ export function create_event(event_name, dom, handler, options) {
// Chrome has a bug where pointer events don't work when attached to a DOM element that has been cloned // Chrome has a bug where pointer events don't work when attached to a DOM element that has been cloned
// with cloneNode() and the DOM element is disconnected from the document. To ensure the event works, we // with cloneNode() and the DOM element is disconnected from the document. To ensure the event works, we
// defer the attachment till after it's been appended to the document. TODO: remove this once Chrome fixes // defer the attachment till after it's been appended to the document. TODO: remove this once Chrome fixes
// this bug. The same applies to wheel events. // this bug. The same applies to wheel events and touch events.
if (event_name.startsWith('pointer') || event_name === 'wheel') { if (
event_name.startsWith('pointer') ||
event_name.startsWith('touch') ||
event_name === 'wheel'
) {
queue_micro_task(() => { queue_micro_task(() => {
dom.addEventListener(event_name, target_handler, options); dom.addEventListener(event_name, target_handler, options);
}); });

Loading…
Cancel
Save