| Summary: | FXCanvasEx does not free all resources when being disposed. | ||
|---|---|---|---|
| Product: | [Tools] GEF | Reporter: | Alexander Nyßen <nyssen> |
| Component: | GEF FX | Assignee: | Alexander Nyßen <nyssen> |
| Status: | RESOLVED FIXED | QA Contact: | |
| Severity: | normal | ||
| Priority: | P3 | ||
| Version: | 1.0.0 | ||
| Target Milestone: | 4.1.0 (Neon.1) M1 | ||
| Hardware: | All | ||
| OS: | All | ||
| Whiteboard: | |||
|
Description
Alexander Nyßen
In addition, as the scene reference is not removed, the cursorChangeListener is also not unregistered. Probably, dispose() should include a setScene(null) call. (In reply to Alexander Nyßen from comment #1) > In addition, as the scene reference is not removed, the cursorChangeListener > is also not unregistered. Probably, dispose() should include a > setScene(null) call. unhookViewers() within AbstractFXView and AbstractFXEditor should already clear the scene. FXCanvas could do it if scene is not already cleared. It seems FXCanvas registers a dispose listener, so clearing the scene from within unhook viewers may not be the way to go. I pushed the following changes to origin/master and origin/R4_0_maintenance: - Replaced FXCanvasEx.dipose() (which is still preserved because of API compatiblity reasons) with dispose listener. - Ensured scene is unset when being disposed, to cursorChangeListener and event dispatcher are properly unregistered. - Changed implementation of RedrawingEventDispatcher to better encapsulate that it wraps the 'original' event dispatcher. Ensured that it is properly disposed as well. - Ensured SWT2FXEventConverter clears all its fields when being disposed. Resolving as fixed in 4.1.0 M1. |