shell: Emit destroy signal for when we manually destroy shell surface
diff --git a/src/shell.c b/src/shell.c
index 8eb9819..25a9677 100644
--- a/src/shell.c
+++ b/src/shell.c
@@ -1283,11 +1283,13 @@
 						    struct shell_surface,
 						    surface_destroy_listener);
 
-	/* tricky way to check if resource was in fact created */
-	if (shsurf->resource.object.implementation != 0)
+	if (shsurf->resource.client) {
 		wl_resource_destroy(&shsurf->resource);
-	else
+	} else {
+		wl_signal_emit(&shsurf->resource.destroy_signal,
+			       &shsurf->resource);
 		destroy_shell_surface(shsurf);
+	}
 }
 
 static struct shell_surface *