Improve usability of diagram viewer
Issue-Ref: 4181 Issue-URL: af3#4181 (closed)
Zoom:
- When zooming with ctrl-scroll, the viewer fixes the content under the mouse pointer, so that zooming does not move the content.
- On Linux, zoom did not work proper with the software driver (on current Intel GPUs one needs to force-enable the GPU manually, currently, so the software driver is used by default). The grid was zoomed, but the content remained unchanged.
Panning:
- The viewer now supports panning with ctrl-drag.
Other changes:
- The code for zooming and moving the content has been simplified. Rather than applying transformations to all nodes separately and repeating coordinate calculations, the content scale and translation is now controlled by a single transformation. Coordinate transformations are done using JavaFX's methods.
- The GridCanvas has been optimized to avoid redrawing its content (which resulted in a noticable slow-down during panning). The grid canvas is not redrawn when the content is only moved.
Signed-off-by: Ulrich Schöpp schoepp@fortiss.org Issue-Ref: 4181