I can confirm your findings. Repaint is called far more than it should because the pan is never reaching target pan, even though Repaint in the update should only be called for a few frames (while smoothly zooming/panning only). The problematic line of code is #386. It is no longer needed (it used to be), so I removed it. Please remove that line as well so that Repaint stops being called in update more than it should.