tweak canvas on_expose_event() handler to avoid unnecessary save/paint/restore