only show canvas when needed