add canvas zooming support, troublesomeQ_Q