More canvas_events refactoring