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)) 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); ret = wl_display_flush(ewd->wl.display);
if (ret == 0) if (ret == 0)
ecore_main_fd_handler_active_set(hdl, ECORE_FD_READ); ecore_main_fd_handler_active_set(hdl, ECORE_FD_READ);
}
if ((ret < 0) && ((errno != EAGAIN) && (errno != EINVAL))) if ((ret < 0) && ((errno != EAGAIN) && (errno != EINVAL)))
{ {
/* TODO: handle error case */ /* TODO: handle error case */
return ECORE_CALLBACK_CANCEL; return ECORE_CALLBACK_CANCEL;
}
} }
return ECORE_CALLBACK_RENEW; return ECORE_CALLBACK_RENEW;