]> git.sesse.net Git - vlc/commitdiff
vout: pass window state control directly to the window
authorRémi Denis-Courmont <remi@remlab.net>
Sun, 12 Oct 2014 16:08:46 +0000 (19:08 +0300)
committerRémi Denis-Courmont <remi@remlab.net>
Thu, 16 Oct 2014 17:23:39 +0000 (20:23 +0300)
include/vlc_vout_wrapper.h
src/video_output/display.c
src/video_output/video_output.c

index a1ee097ececef2e87e68405c77a3559d8f1a9050..4e2994bfe7522bd96db1935cdaaa286df590bfbc 100644 (file)
@@ -87,7 +87,6 @@ VLC_API bool vout_ManageDisplay(vout_display_t *, bool allow_reset_pictures);
 VLC_API void vout_SetDisplayFullscreen(vout_display_t *, bool is_fullscreen);
 VLC_API void vout_SetDisplayFilled(vout_display_t *, bool is_filled);
 VLC_API void vout_SetDisplayZoom(vout_display_t *, unsigned num, unsigned den);
-void vout_SetWindowState(vout_display_t *, unsigned state);
 VLC_API void vout_SetDisplayAspect(vout_display_t *, unsigned dar_num, unsigned dar_den);
 VLC_API void vout_SetDisplayCrop(vout_display_t *, unsigned crop_num, unsigned crop_den, unsigned left, unsigned top, int right, int bottom);
 
index 3f42d0f0e0833ce09187015a4892cc28a42dcde4..b0a5070c5d2bdfb87e57ccd77d34c532b17771d1 100644 (file)
@@ -1222,18 +1222,6 @@ void vout_SetDisplayZoom(vout_display_t *vd, unsigned num, unsigned den)
     }
 }
 
-void vout_SetWindowState(vout_display_t *vd, unsigned state)
-{
-    vout_display_owner_sys_t *osys = vd->owner.sys;
-
-    vlc_mutex_lock(&osys->lock);
-    if (osys->wm_state != state) {
-        osys->ch_wm_state = true;
-        osys->wm_state = state;
-    }
-    vlc_mutex_unlock(&osys->lock);
-}
-
 void vout_SetDisplayAspect(vout_display_t *vd, unsigned dar_num, unsigned dar_den)
 {
     vout_display_owner_sys_t *osys = vd->owner.sys;
index 5d93e92415d1ec09d7d3a2fd37dc813ea011bd21..c5f360ed1f46a96cf5d0cfca256a49a47df1d816 100644 (file)
@@ -1265,7 +1265,15 @@ static void ThreadChangeFullscreen(vout_thread_t *vout, bool fullscreen)
 
 static void ThreadChangeWindowState(vout_thread_t *vout, unsigned state)
 {
-    vout_SetWindowState(vout->p->display.vd, state);
+    vout_window_t *window = vout->p->window;
+
+    if (window != NULL)
+        vout_window_SetState(window, state);
+    else
+    if (vout->p->display.vd != NULL)
+        /* FIXME: remove this event, fix MSW and OS/2 window providers */
+        vout_display_SendEvent(vout->p->display.vd,
+                               VOUT_DISPLAY_EVENT_WINDOW_STATE, state);
 }
 
 static void ThreadChangeDisplayFilled(vout_thread_t *vout, bool is_filled)