]> git.sesse.net Git - vlc/commitdiff
Win32: go to fullscreen on the same monitor as the vlc window
authorGeoffroy Couprie <geo.couprie@gmail.com>
Thu, 19 Feb 2009 13:14:54 +0000 (14:14 +0100)
committerGeoffroy Couprie <geo.couprie@gmail.com>
Thu, 19 Feb 2009 13:14:54 +0000 (14:14 +0100)
Fixes #2517

modules/video_output/msw/events.c

index 9fe3c95705c0ce773aaf9aacf82f6f61a9ba59e3..6dea945a5573f2ed65fe71bfd8aae08eac19dcde 100644 (file)
@@ -1128,15 +1128,6 @@ static WINDOWPLACEMENT getWindowState(HWND hwnd)
     return window_placement;
 }
 
-/* Internal wrapper over SetWindowPlacement */
-static void SetWindowState(HWND hwnd, int nShowCmd,WINDOWPLACEMENT window_placement)
-{
-    window_placement.showCmd = nShowCmd;
-    SetWindowPlacement( hwnd, &window_placement );
-    SetWindowPos( hwnd, 0, 0, 0, 0, 0,
-        SWP_NOMOVE|SWP_NOSIZE|SWP_NOZORDER|SWP_FRAMECHANGED);
-}
-
 /* Internal wrapper to call vout_ControlWindow for hparent */
 static int vaControlParentWindow( vout_thread_t *p_vout, int i_query,
                                    va_list args )
@@ -1200,9 +1191,11 @@ void Win32ToggleFullscreen( vout_thread_t *p_vout )
                             SWP_NOZORDER|SWP_FRAMECHANGED );
 #endif
         }
-
-        /* Maximize window */
-        SetWindowState( hwnd, SW_SHOWMAXIMIZED, window_placement );
+        else
+        {
+            /* Maximize non embedded window */
+            ShowWindow( hwnd, SW_SHOWMAXIMIZED );
+        }
 
         if( p_vout->p_sys->hparent )
         {
@@ -1230,9 +1223,6 @@ void Win32ToggleFullscreen( vout_thread_t *p_vout )
         /* Change window style, no borders and no title bar */
         SetWindowLong( hwnd, GWL_STYLE, p_vout->p_sys->i_window_style );
 
-        /* Normal window */
-        SetWindowState( hwnd, SW_SHOWNORMAL, window_placement );
-
         if( p_vout->p_sys->hparent )
         {
             RECT rect;
@@ -1251,6 +1241,12 @@ void Win32ToggleFullscreen( vout_thread_t *p_vout )
             SetForegroundWindow( p_vout->p_sys->hparent );
             ShowWindow( hwnd, SW_HIDE );
         }
+        else
+        {
+            /* return to normal window for non embedded vout */
+            SetWindowPlacement( hwnd, &window_placement );
+            ShowWindow( hwnd, SW_SHOWNORMAL );
+        }
 
         /* Make sure the mouse cursor is displayed */
         PostMessage( p_vout->p_sys->hwnd, WM_VLC_SHOW_MOUSE, 0, 0 );