A DESCRIPTION OF THE PROBLEM :
In a stand-alone JavaFX application, the UI is updated more frequently than in an application that is embedded into SWT using FXCanvas. The FXCanvas should ensure that the UI is updated in between the processing of events when the registered event handlers are slow.

The example application that is attached to this report can be run in embedded mode (default, EMBEDDED=true) and in stand-alone mode (set EMBEDDED=false). When in stand-alone mode, the circle can be dragged and its position is updated regularly. However, when in embedded mode, the circle can be dragged but its position is not updated regularly, but only occasionally.

STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
1. Run the attached SlowDragSnippet in embedded mode (default).
2. Drag the circle with the mouse.
3. Observe how infrequent the rendering is updated.
4. Run the attached SlowDragSnippet in stand-alone mode (set EMBEDDED=false).
5. Drag the circle with the mouse.
6. Observe how frequent the rendering is updated.

EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
When embedding a JavaFX application into SWT using FXCanvas, the rendering should be updated with a similar frequency compared to a stand-alone JavaFX application, even though long running event handlers are used.
ACTUAL -
When embedding a JavaFX application into SWT using FXCanvas, the rendering is only updated very rarely if long running event handlers are used.

CUSTOMER SUBMITTED WORKAROUND :
The only workaround that I have found so far is implementing a custom EventDispatcher that spawns a Display-Runnable (Display#asyncExec) to update the SWT Display. Incoming mouse drag events are discarded until the display was updated: