Fix drag surfaces ignoring size updates on Wayland and X11
GdkDragSurface-backed widgets are not parented to an existing widget, unlike popovers, and like toplevels. This means that there's nobody to
actively call gdk_drag_surface_present()
to update the size, and GdkDragSurface should do it on its own, just like GdkToplevel.
In this MR I added a compute-size
signal which is emitted from Wayland's GdkSurface::compute_size
vfunc, similarly to how GdkToplevel works. This makes drag surfaces that change size work, notably this fixes libadwaita's tabs.
Screencast_from_2023-03-05_10-10-57
I'm not sure whether this is the right approach, and I've also no idea about any other backends, but on Wayland it seems to work and not break anything from my limited testing.
cc @otte, @exalm