better pan/zoom widget handling