bbc / peaks.js

JavaScript UI component for interacting with audio waveforms
https://waveform.prototyping.bbc.co.uk
GNU Lesser General Public License v3.0
3.16k stars 275 forks source link

only one of dblclick or click event is triggered #482

Open coleea opened 1 year ago

coleea commented 1 year ago

version : 3.0.0-beta.8

when I double-click in zoomview, Sometimes only one of dblclick or click event is triggered.

Sometimes both dblclick and click event triggered. But sometimes only one of dblclick or click event is triggered. I don't know by which condition the only one event is triggered.

I attach a video. in this video, console.log on chrome devtools outputs each event

https://user-images.githubusercontent.com/7471674/228110472-75c609c4-9080-49f4-ad15-ee8244523522.mp4

Clicking on a particular timeline triggers only one of click and dblclick I don't know why both click and dblclick won't trigger

You can test via https://rumpus-six.vercel.app/

And if this is a bug, I want to fix this. I would appreciate it if you could let me know which source code I should refer to

chrisn commented 1 year ago

You are very welcome to try to fix this. Peaks.js listens for click and dblclick events from Konva, here for example. So you may also need to look at how Konva generates these events.

chrisn commented 1 year ago

I have not been able to reproduce this problem, using the demo pages.

If I double-click on a segment, I see these events:

segments.click: {segment: Segment, evt: MouseEvent}
zoomview.click: {time: 27.028027210884353, evt: MouseEvent}
segments.dblclick: {segment: Segment, evt: MouseEvent}
zoomview.dblclick: {time: 27.028027210884353, evt: MouseEvent}

When I double-click where there is no segment, I see these events:

zoomview.click: {time: 35.48009070294785, evt: MouseEvent}
zoomview.dblclick: {time: 35.48009070294785, evt: MouseEvent}
coleea commented 1 year ago

@chrisn thank you for answer. I will check demo and create new project for testing

chrisn commented 1 year ago

In case it helps, I think that the relevant code in Konva that generates click and dblclick events is here.