At the moment Component’s mouseDoubleClick() method seems to never be called if between the last 2 “mouseDown and mouseUp”-pairs the cursor has changed its position. that was probably done to prevent mouseDoubleClick() from being triggered by a drag.
But there can be different reasons for cursor position changes to appear than just drags. For example i made my knobs to become invisible on mouseDown() and to reveal themselves again on mouseUp() to let them have unbounded drags in between. Furthermore they reposition themselves on mouseUp() to the center of the component so that they don’t end up at the bounds of the screen. But that means that if i double click on them they must have moved at least once!
I tried putting the repositioning of the cursor into mouseDown instead of mouseUp hoping that would make it seem like there was no “drag”. That didn’t work and additionally also messed with the value of the knob before even started dragging, so i’ll have to put that back into mouseUp.
I think it would be cool if mouseDoubleClick() was just generally triggered on doubleClicks regardless of these “fake drags” and then we can check if mouseWasDragged in the method itself if needed. A solution to that specific to parameter types, like juce::Slider would be to let mouseDoubleClick be triggered by a change in value rather than the persistence of the cursor position.