Even more canvas_events refactoring