From 7e94a98e077218b86e1a945aa9b68ea05749c261 Mon Sep 17 00:00:00 2001 From: Pekka Paalanen Date: Tue, 31 Jul 2012 13:21:10 +0300 Subject: [PATCH] simple-touch: respond to ping protocol Without this, it won't get any input anymore. Signed-off-by: Pekka Paalanen --- clients/simple-touch.c | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/clients/simple-touch.c b/clients/simple-touch.c index 517a956..b438ffa 100644 --- a/clients/simple-touch.c +++ b/clients/simple-touch.c @@ -200,6 +200,30 @@ static const struct wl_seat_listener seat_listener = { }; static void +handle_ping(void *data, struct wl_shell_surface *shell_surface, + uint32_t serial) +{ + wl_shell_surface_pong(shell_surface, serial); +} + +static void +handle_configure(void *data, struct wl_shell_surface *shell_surface, + uint32_t edges, int32_t width, int32_t height) +{ +} + +static void +handle_popup_done(void *data, struct wl_shell_surface *shell_surface) +{ +} + +static const struct wl_shell_surface_listener shell_surface_listener = { + handle_ping, + handle_configure, + handle_popup_done +}; + +static void handle_global(struct wl_display *display, uint32_t id, const char *interface, uint32_t version, void *data) { @@ -258,7 +282,12 @@ touch_create(int width, int height) touch->surface); create_shm_buffer(touch); - wl_shell_surface_set_toplevel(touch->shell_surface); + if (touch->shell_surface) { + wl_shell_surface_add_listener(touch->shell_surface, + &shell_surface_listener, touch); + wl_shell_surface_set_toplevel(touch->shell_surface); + } + wl_surface_set_user_data(touch->surface, touch); memset(touch->data, 64, width * height * 4); -- 2.7.4