Canvas gesture/overflow refactor checkpoint