issue #439 needs canvas.draw() even though not using the DC is risky