wl_desktop_shell: Fixed the issue to check if client is active or hung up

Summary:
The patch will setup e_client_cb_ping_poller and as long as surface is
active it will unset hung

Signed-off-by: vivek <vivek.ellur@samsung.com>

Reviewers: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1607
This commit is contained in:
vivek 2014-10-29 10:34:26 -04:00 committed by Chris Michael
parent 5f57c472b2
commit 0a60b1c553
1 changed files with 9 additions and 3 deletions

View File

@ -1089,9 +1089,13 @@ _e_xdg_shell_surface_ping(struct wl_resource *resource)
return; return;
} }
ec->hung = EINA_TRUE;
e_client_ping(ec);
serial = wl_display_next_serial(ec->comp->wl_comp_data->wl.disp); serial = wl_display_next_serial(ec->comp->wl_comp_data->wl.disp);
if (ec->comp->wl_comp_data->shell_interface.xdg_shell) if (ec->comp->wl_comp_data->shell_interface.xdg_shell)
xdg_shell_send_ping(ec->comp->wl_comp_data->shell_interface.xdg_shell, serial); xdg_shell_send_ping(ec->comp->wl_comp_data->shell_interface.xdg_shell, serial);
} }
static void static void
@ -1361,9 +1365,11 @@ _e_xdg_shell_cb_pong(struct wl_client *client EINA_UNUSED, struct wl_resource *r
{ {
E_Client *ec; E_Client *ec;
/* NB: Needs to set client->ping_ok, or client->hung */
if ((ec = wl_resource_get_user_data(resource))) if ((ec = wl_resource_get_user_data(resource)))
{
ec->ping_ok = EINA_TRUE; ec->ping_ok = EINA_TRUE;
ec->hung = EINA_FALSE;
}
} }
static const struct wl_shell_interface _e_shell_interface = static const struct wl_shell_interface _e_shell_interface =