window: add info struct and double click flag
authorRémi Denis-Courmont <remi@remlab.net>
Sun, 6 Aug 2017 13:26:55 +0000 (16:26 +0300)
committerRémi Denis-Courmont <remi@remlab.net>
Sun, 6 Aug 2017 18:26:12 +0000 (21:26 +0300)
Like display plugins before, window plugins need to be handled
differently if they emit double click events than not.

include/vlc_vout_window.h
modules/gui/qt/qt.cpp
src/video_output/window.c

index 69a719b..4081a0b 100644 (file)
@@ -147,6 +147,11 @@ struct vout_window_t {
      */
     int (*control)(vout_window_t *, int query, va_list);
 
+    struct {
+        bool has_double_click; /**< Whether double click events are sent,
+                                    or need to be emulated */
+    } info;
+
     /* Private place holder for the vout_window_t module (optional)
      *
      * A module is free to use it as it wishes.
index 2ad68eb..f521d04 100644 (file)
@@ -755,6 +755,7 @@ static int WindowOpen( vout_window_t *p_wnd, const vout_window_cfg_t *cfg )
     if( !p_mi->getVideo( p_wnd, cfg->width, cfg->height, cfg->is_fullscreen ) )
         return VLC_EGENERIC;
 
+    p_wnd->info.has_double_click = true;
     p_wnd->control = WindowControl;
     p_wnd->sys = (vout_window_sys_t*)p_mi;
     return VLC_SUCCESS;
index 6d76f12..bd43592 100644 (file)
@@ -59,6 +59,7 @@ vout_window_t *vout_window_New(vlc_object_t *obj, const char *module,
     vout_window_t *window = &w->wnd;
 
     memset(&window->handle, 0, sizeof(window->handle));
+    window->info.has_double_click = false;
     window->control = NULL;
     window->sys = NULL;