simple-touch: respond to ping protocol

Without this, it won't get any input anymore.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
This commit is contained in:
Pekka Paalanen 2012-07-31 13:21:10 +03:00 committed by Kristian Høgsberg
parent e288a0f415
commit 7e94a98e07
1 changed files with 30 additions and 1 deletions

View File

@ -199,6 +199,30 @@ static const struct wl_seat_listener seat_listener = {
seat_handle_capabilities,
};
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);