vaapisink: don't mask button events for foreign windows
authorVaL Doroshchuk <valkov@yandex.ru>
Fri, 2 Feb 2018 08:54:00 +0000 (08:54 +0000)
committerVíctor Manuel Jáquez Leal <vjaquez@igalia.com>
Mon, 5 Feb 2018 10:36:35 +0000 (11:36 +0100)
Don't subscribe to button press events when using a foreing window,
because the user created window would trap those events, preveting the
show of frames.

https://bugzilla.gnome.org/show_bug.cgi?id=791615

gst/vaapi/gstvaapisink.c

index 8bd8303..c57b126 100644 (file)
@@ -448,9 +448,11 @@ gst_vaapisink_x11_pre_start_event_thread (GstVaapiSink * sink)
 {
   GstVaapiDisplayX11 *const display =
       GST_VAAPI_DISPLAY_X11 (GST_VAAPI_PLUGIN_BASE_DISPLAY (sink));
-  static const int x11_event_mask = (KeyPressMask | KeyReleaseMask |
-      ButtonPressMask | ButtonReleaseMask | PointerMotionMask |
-      ExposureMask | StructureNotifyMask);
+  int x11_event_mask = (KeyPressMask | KeyReleaseMask |
+      PointerMotionMask | ExposureMask | StructureNotifyMask);
+
+  if (!sink->foreign_window)
+      x11_event_mask |= ButtonPressMask | ButtonReleaseMask;
 
   if (sink->window) {
     gst_vaapi_display_lock (GST_VAAPI_DISPLAY (display));