summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Moreau <oreaus@gmail.com>2012-05-12 11:57:42 -0600
committerKristian Høgsberg <krh@bitplanet.net>2012-05-14 10:02:12 -0400
commit7c8b116065c53caa9da13788e6a639e05c664cf8 (patch)
tree31bd0609ea0b07e997801216705c62bc206baa81
parent4c3dac9c66a2ee1ebbe0ed7bad07ac4283b0c7e2 (diff)
simple-shm: Handle ping event.
Since simple-shm does not use toytoolkit, it needs to respond to ping events so it is not deemed unresponsive.
-rw-r--r--clients/simple-shm.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/clients/simple-shm.c b/clients/simple-shm.c
index 16f718c..cb79126 100644
--- a/clients/simple-shm.c
+++ b/clients/simple-shm.c
@@ -94,6 +94,30 @@ create_shm_buffer(struct display *display,
return buffer;
}
+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 struct window *
create_window(struct display *display, int width, int height)
{
@@ -119,6 +143,10 @@ create_window(struct display *display, int width, int height)
window->shell_surface = wl_shell_get_shell_surface(display->shell,
window->surface);
+ if (window->shell_surface)
+ wl_shell_surface_add_listener(window->shell_surface,
+ &shell_surface_listener, window);
+
wl_shell_surface_set_toplevel(window->shell_surface);
return window;