GdkDragSurface-backed widgets are not parented to an existing widget, unlike popovers, and like toplevels. This means that there's nobody to
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.
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.