wayland: respond to ping/pong protocol so we're not deemed unresponsive.
authorKristian Høgsberg <krh@bitplanet.net>
Thu, 26 Jul 2012 13:27:47 +0000 (09:27 -0400)
committerGwenole Beauchesne <gwenole.beauchesne@intel.com>
Thu, 26 Jul 2012 14:12:56 +0000 (16:12 +0200)
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
gst-libs/gst/vaapi/gstvaapiwindow_wayland.c

index 6963414..81e658a 100644 (file)
@@ -68,6 +68,30 @@ gst_vaapi_window_wayland_hide(GstVaapiWindow *window)
     return TRUE;
 }
 
+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 gboolean
 gst_vaapi_window_wayland_create(
     GstVaapiWindow *window,
@@ -94,6 +118,8 @@ gst_vaapi_window_wayland_create(
     if (!priv->shell_surface)
         return FALSE;
 
+    wl_shell_surface_add_listener(priv->shell_surface,
+                                  &shell_surface_listener, priv);
     wl_shell_surface_set_toplevel(priv->shell_surface);
     wl_shell_surface_set_fullscreen(
         priv->shell_surface,