]> git.sesse.net Git - vlc/blobdiff - src/video_output/display.c
video_output fix compilation
[vlc] / src / video_output / display.c
index e3a3305c5bc74596607a0cf769fadb14eaf06bdd..c3b080045bb98f3d4093053efbfad6033ccf5b64 100644 (file)
@@ -353,6 +353,7 @@ struct vout_display_owner_sys_t {
     int  display_width;
     int  display_height;
     bool display_is_fullscreen;
+    bool display_is_forced;
 };
 
 static void VoutDisplayCreateRender(vout_display_t *vd)
@@ -454,7 +455,7 @@ static void VoutDisplayEventMouse(vout_display_t *vd, int event, va_list args)
         const int x = (int)va_arg(args, int);
         const int y = (int)va_arg(args, int);
         if (x != osys->mouse.state.i_x || y != osys->mouse.state.i_y) {
-            msg_Dbg(vd, "VoutDisplayEvent 'mouse' @%d,%d", x, y);
+            //msg_Dbg(vd, "VoutDisplayEvent 'mouse' @%d,%d", x, y);
 
             m.i_x = x;
             m.i_y = y;
@@ -581,6 +582,7 @@ static void VoutDisplayEvent(vout_display_t *vd, int event, va_list args)
         osys->display_width         = width;
         osys->display_height        = height;
         osys->display_is_fullscreen = is_fullscreen;
+        osys->display_is_forced     = false;
 
         vlc_mutex_unlock(&osys->lock);
         break;
@@ -659,6 +661,7 @@ void vout_ManageDisplay(vout_display_t *vd)
         int  display_width         = osys->display_width;
         int  display_height        = osys->display_height;
         bool display_is_fullscreen = osys->display_is_fullscreen;
+        bool display_is_forced     = osys->display_is_forced;
         osys->ch_display_size = false;
 
         bool reset_pictures = osys->reset_pictures;
@@ -701,7 +704,7 @@ void vout_ManageDisplay(vout_display_t *vd)
             cfg.display.height = display_height;
 
             if (!cfg.is_fullscreen != !display_is_fullscreen ||
-                vout_display_Control(vd, VOUT_DISPLAY_CHANGE_DISPLAY_SIZE, &cfg)) {
+                vout_display_Control(vd, VOUT_DISPLAY_CHANGE_DISPLAY_SIZE, &cfg, display_is_forced)) {
                 if (!cfg.is_fullscreen == !display_is_fullscreen)
                     msg_Err(vd, "Failed to resize display");
 
@@ -755,7 +758,15 @@ void vout_ManageDisplay(vout_display_t *vd)
                 const int display_width  = (int64_t)vd->source.i_width  * osys->zoom.num / osys->zoom.den;
                 const int display_height = (int64_t)vd->source.i_height * osys->zoom.num / osys->zoom.den;
 
-                vout_display_SendEventDisplaySize(vd, display_width, display_height, osys->cfg.is_fullscreen);
+                vlc_mutex_lock(&osys->lock);
+
+                osys->ch_display_size       = true;
+                osys->display_width         = display_width;
+                osys->display_height        = display_height;
+                osys->display_is_fullscreen = osys->cfg.is_fullscreen;
+                osys->display_is_forced     = true;
+
+                vlc_mutex_unlock(&osys->lock);
             }
 
             osys->cfg.zoom.num = osys->zoom.num;