xwayland: refactor Wayland event handling

To be able to reuse some code.

Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
Olivier Fourdan 2016-03-09 11:17:27 +01:00
parent 239705a6fe
commit 26ad25a0ed

View File

@ -462,14 +462,13 @@ static const struct wl_registry_listener registry_listener = {
};
static void
socket_handler(int fd, int ready, void *data)
xwl_read_events (struct xwl_screen *xwl_screen)
{
struct xwl_screen *xwl_screen = data;
int ret;
ret = wl_display_read_events(xwl_screen->display);
if (ret == -1)
FatalError("failed to dispatch Wayland events: %s\n", strerror(errno));
FatalError("failed to read Wayland events: %s\n", strerror(errno));
xwl_screen->prepare_read = 0;
@ -479,18 +478,10 @@ socket_handler(int fd, int ready, void *data)
}
static void
wakeup_handler(void *data, int err, void *pRead)
xwl_dispatch_events (struct xwl_screen *xwl_screen)
{
}
static void
block_handler(void *data, OSTimePtr pTimeout, void *pRead)
{
struct xwl_screen *xwl_screen = data;
int ret;
xwl_screen_post_damage(xwl_screen);
while (xwl_screen->prepare_read == 0 &&
wl_display_prepare_read(xwl_screen->display) == -1) {
ret = wl_display_dispatch_pending(xwl_screen->display);
@ -506,6 +497,28 @@ block_handler(void *data, OSTimePtr pTimeout, void *pRead)
FatalError("failed to write to XWayland fd: %s\n", strerror(errno));
}
static void
socket_handler(int fd, int ready, void *data)
{
struct xwl_screen *xwl_screen = data;
xwl_read_events (xwl_screen);
}
static void
wakeup_handler(void *data, int err, void *pRead)
{
}
static void
block_handler(void *data, OSTimePtr pTimeout, void *pRead)
{
struct xwl_screen *xwl_screen = data;
xwl_screen_post_damage(xwl_screen);
xwl_dispatch_events (xwl_screen);
}
static CARD32
add_client_fd(OsTimerPtr timer, CARD32 time, void *arg)
{