We need to setup our attachments when the wl_surface is created.
This gets recreated when a window is hidden and shown.
QPlatformSurfaceCreated is emitted once, when the backing store is created,
not when the wl_surface is created, despite it's similar sounding name.
QEvent::Show is too soon, as this is before the platform gets setVisible
We do however, always get an expose event. QEvent::Hide weirdly comes after
the platform has done its thing.
Expose is called whilst we are in QWaylandWindow::setVisible, so before the initial surface has been committed, so we still have perfect frames.