libweston-desktop: Store weston_surface in grabs
If a client disconnects during a popup grab we can have the parent weston_desktop_surface destroyed before the popup, which leads to a use after free when ending the grab.
However, the weston_surface is still around at that time - so we can just store weston_surface in popup_grab instead of the weston_desktop_surface.
Fixes #870 (closed)
Signed-off-by: Derek Foreman derek.foreman@collabora.com