minor
defect
major
minor
Symptom
The flowClickTarget function (which responds to clicks in the flowchart graphic component) can be configured to respond to double-clicks using the "doubleClick" Boolean parameter. Double-clicks are not always reliably detected; in particular, the system sometimes fails to respond when network latency is high.
Cause
A double-click on an area that can also be selected with a single click (SelectableBox) triggers a selection change on the client side with the first click. This change is synchronized to the server via JSDiagramControl.onChange -> sendUpdate. This update request was sent with the wait pane enabled (useWaitPane=true), causing the input-blocking wait pane (#waitPane) to cover the graphic component during the server round trip.
With higher latency, the wait pane is still visible when the second click of the double-click occurs. This click then hits the overlay area instead of the SVG element; the browser does not recognize it as a double-click, and the double-click handler is not triggered. (With low latency, the wait pane has already disappeared before the second click, which is why the problem occurs only sporadically or depending on latency.)
This also explains why the problem occurs even when the area is already selected: The subsequent click calls ` setSelection(...) `, whose `afterChanged ` setter fires unconditionally, so an update with a loading spinner is sent anyway.
Solution
The synchronization of the selection change (which has already been applied on the client side) is performed without an input-blocking wait pane (useWaitPane=false in JSDiagramControl.sendUpdate). The selection is already visible on the client; the round trip does not need to block input, and a second click that follows quickly is no longer lost.
The React variant (FlowDiagramClientControl) is not affected, as it sends commands without a wait pane via ReactBridge.sendCommand (fetch).