ecore-wl2: Fix event processing for client connections

Signed-off-by: Chris Michael <cp.michael@samsung.com>
This commit is contained in:
Chris Michael 2015-10-22 13:11:02 -04:00
parent 5a13b093b5
commit 59d1491929
1 changed files with 15 additions and 7 deletions

View File

@ -193,18 +193,26 @@ _cb_connect_data(void *data, Ecore_Fd_Handler *hdl)
}
if (ecore_main_fd_handler_active_get(hdl, ECORE_FD_READ))
ret = wl_display_dispatch(ewd->wl.display);
else if (ecore_main_fd_handler_active_get(hdl, ECORE_FD_WRITE))
{
ret = wl_display_dispatch(ewd->wl.display);
if ((ret < 0) && ((errno != EAGAIN) && (errno != EINVAL)))
{
/* TODO: handle error case */
return ECORE_CALLBACK_CANCEL;
}
}
if (ecore_main_fd_handler_active_get(hdl, ECORE_FD_WRITE))
{
ret = wl_display_flush(ewd->wl.display);
if (ret == 0)
ecore_main_fd_handler_active_set(hdl, ECORE_FD_READ);
}
if ((ret < 0) && ((errno != EAGAIN) && (errno != EINVAL)))
{
/* TODO: handle error case */
return ECORE_CALLBACK_CANCEL;
if ((ret < 0) && ((errno != EAGAIN) && (errno != EINVAL)))
{
/* TODO: handle error case */
return ECORE_CALLBACK_CANCEL;
}
}
return ECORE_CALLBACK_RENEW;