xwayland: Make resizing work again

9c376b54ea6f60ae10d93653132e22ef66a536d7 fixed the crash when a client goes
away during a resize grab.  The shsurf->resource is set to NULL in that
case and we were trying to send out events to a NULL resource.  However,
xwayland shell surfaces are created by the xwayland module and don't have a
resource.  We use a different function pointer for sending the configure
events that handle the events inside xwayland instead of sending protocol
events.

To fix all this, we just move the check for a NULL resource into the
functions that we use for sending configure events for wl_shell and
xdg_shell.
diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c
index bb71436..8d169aa 100644
--- a/desktop-shell/shell.c
+++ b/desktop-shell/shell.c
@@ -1630,7 +1630,7 @@
 
 	weston_pointer_move(pointer, x, y);
 
-	if (!shsurf || !shsurf->resource)
+	if (!shsurf)
 		return;
 
 	weston_view_from_global_fixed(shsurf->view,
@@ -1665,8 +1665,9 @@
 
 	assert(shsurf);
 
-	wl_shell_surface_send_configure(shsurf->resource,
-					edges, width, height);
+	if (shsurf->resource)
+		wl_shell_surface_send_configure(shsurf->resource,
+						edges, width, height);
 }
 
 static const struct weston_shell_client shell_client = {
@@ -3514,7 +3515,8 @@
 
 	assert(shsurf);
 
-	xdg_surface_send_configure(shsurf->resource, width, height);
+	if (shsurf->resource)
+		xdg_surface_send_configure(shsurf->resource, width, height);
 }
 
 static const struct weston_shell_client xdg_client = {