hack: Ensure surfaces aren't entirely occluded by cursor

Our tests tend to wait for a `surface.frame` event to ensure
that a surface has been mapped.

Unfortunately, this is not always accurate. Particularly: if
a surface is entirely occluded by another (or by the cursor)
then a new frame is not required and the compositor will not
send a `surface.frame` event even once the surface *is* mapped.

Because plumbing surface introspection through the WLCS hooks
is going to be a longer-term project, just ensure that
the surfaces that hit this problem are definitely not occluded
by the cursor.
3 files changed