I am trying to get an application to work that uses multiple SVG canvasses which can overlap. It all works surprisingly well (hats off to the Batik developers!) except when an animation is happening in the canvas under another canvas. In this case, if I zoom in on the top canvas and it's a relatively complex SVG that takes a little while to re-render at its new size, the underlying animation shows through during that time and the result is ugly. Similarly if the top canvas includes an object which can be dragged, during the dragging similar behaviour is observed and results in a hideous battle between the animation and the top SVG as to who gets to render at that time.
I have been trying hard to make modifications which would alleviate this behaviour but I realised that I don't even understand exactly what is happening and why. I would have thought that as the underlying animation paints its component it would then need to repaint anything on top of it but when that top object is resizing or being dragged it seems to be unable to do this. Curiously this doesn't happen if the top object is being translated by the left and right arrow keys. So why can't the top object paint itself while it is being resized or dragged? Is something else going on? I have tried placing the zoom action in a separate thread in the hope that this would free up the EDT and enable repainting while resizing but it makes no difference. Hopefully one of the Batik gurus out there will be able to shed some more light on this issue. Thanks, John
PGP.sig
Description: PGP signature
