}
static void
+desktop_shell_client_destroy(struct wl_listener *listener, void *data)
+{
+ struct desktop_shell *shell;
+
+ shell = container_of(listener, struct desktop_shell,
+ child.client_destroy_listener);
+
+ shell->child.client = NULL;
+}
+
+static void
launch_desktop_shell_process(void *data)
{
struct desktop_shell *shell = data;
if (!shell->child.client)
weston_log("not able to start %s\n", shell->client);
+
+ shell->child.client_destroy_listener.notify =
+ desktop_shell_client_destroy;
+ wl_client_add_destroy_listener(shell->child.client,
+ &shell->child.client_destroy_listener);
}
static void
struct weston_process process;
struct wl_client *client;
struct wl_resource *desktop_shell;
+ struct wl_listener client_destroy_listener;
unsigned deathcount;
uint32_t deathstamp;