diff --git a/src/modules/wl_desktop_shell/e_mod_main.c b/src/modules/wl_desktop_shell/e_mod_main.c index fc6baaec7..0fda80ae8 100644 --- a/src/modules/wl_desktop_shell/e_mod_main.c +++ b/src/modules/wl_desktop_shell/e_mod_main.c @@ -136,9 +136,11 @@ _e_shell_surface_cb_pong(struct wl_client *client EINA_UNUSED, struct wl_resourc { E_Client *ec; - /* NB: Needs to set client->ping_ok, or client->hung */ if ((ec = wl_resource_get_user_data(resource))) - ec->ping_ok = EINA_TRUE; + { + ec->ping_ok = EINA_TRUE; + ec->hung = EINA_FALSE; + } } static void @@ -506,6 +508,9 @@ _e_shell_surface_ping(struct wl_resource *resource) return; } + ec->hung = EINA_TRUE; + e_client_ping(ec); + serial = wl_display_next_serial(ec->comp->wl_comp_data->wl.disp); wl_shell_surface_send_ping(ec->comp_data->shell.surface, serial); }