[vlc-devel] commit: Win32 Vout: Try to fix the display of the MI on exit of movie in FS mode. ( Jean-Baptiste Kempf )

git version control git at videolan.org
Thu Sep 25 08:59:59 CEST 2008


vlc | branch: 0.9-bugfix | Jean-Baptiste Kempf <jb at videolan.org> | Wed Sep 24 23:50:12 2008 -0700| [d1f4554ee731d1c8e63e4d98fc642dd16837c5ac] | committer: Jean-Baptiste Kempf 

Win32 Vout: Try to fix the display of the MI on exit of movie in FS mode.

This is a big, a huge HACK around the windows Video Output,
Since the Vout fusion the Vout Windows, with the main windows
(very nice indeed for Alt-Tab), at the end of the film, when Vout quits
fullscreen, MI isn't properly put in the good state again...
(hidden still)...
Of course this is not good, but we will have to live with it temporarly...

Since we have no windows developer, too bad. And if you don't have the Fullscreen controller, and you don't have the systray icon, you are screwed up.

I will try a proper fix later.

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=d1f4554ee731d1c8e63e4d98fc642dd16837c5ac
---

 modules/gui/qt4/components/interface_widgets.cpp |   13 ++++++++++++-
 modules/video_output/msw/events.c                |    8 ++++----
 2 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/modules/gui/qt4/components/interface_widgets.cpp b/modules/gui/qt4/components/interface_widgets.cpp
index 5270fc5..fd2430c 100644
--- a/modules/gui/qt4/components/interface_widgets.cpp
+++ b/modules/gui/qt4/components/interface_widgets.cpp
@@ -1418,7 +1418,7 @@ void FullscreenControllerWidget::detachVout()
 void FullscreenControllerWidget::fullscreenChanged( vout_thread_t *p_vout,
         bool b_fs, int i_timeout )
 {
-    msg_Dbg( p_vout, "Qt: Entering Fullscreen" );
+    msg_Dbg( p_vout, "Qt: Changing Fullscreen Mode" );
 
     vlc_mutex_lock( &lock );
     /* Entering fullscreen, register callback */
@@ -1440,6 +1440,17 @@ void FullscreenControllerWidget::fullscreenChanged( vout_thread_t *p_vout,
         /* Force fs hidding */
         IMEvent *eHide = new IMEvent( FullscreenControlHide_Type, 0 );
         QApplication::postEvent( this, static_cast<QEvent *>(eHide) );
+#ifdef WIN32
+        /* This is a big, a huge HACK around the windows Video Output,
+         Since the Vout fusion the Vout Windows, with the main windows
+         (very nice indeed for Alt-Tab), at the end of the film, when Vout quits
+         fullscreen, MI isn't properly put in the good state again...
+         (hidden still)...
+         Of course this is not good, but we will have to live with it temporarly
+         */
+        p_intf->p_sys->p_mi->hide();
+        p_intf->p_sys->p_mi->show();
+#endif
     }
     vlc_mutex_unlock( &lock );
 }
diff --git a/modules/video_output/msw/events.c b/modules/video_output/msw/events.c
index 623f439..529485a 100644
--- a/modules/video_output/msw/events.c
+++ b/modules/video_output/msw/events.c
@@ -1201,8 +1201,8 @@ void Win32ToggleFullscreen( vout_thread_t *p_vout )
                           rect.right, rect.bottom,
                           SWP_NOZORDER|SWP_FRAMECHANGED );
 
-            HWND topLevelParent = GetParent( p_vout->p_sys->hparent );
-            //HWND topLevelParent = GetAncestor( p_vout->p_sys->hparent, GA_ROOT );
+            //HWND topLevelParent = GetParent( p_vout->p_sys->hparent );
+            HWND topLevelParent = GetAncestor( p_vout->p_sys->hparent, GA_ROOT );
             ShowWindow( topLevelParent, SW_HIDE );
         }
 
@@ -1226,8 +1226,8 @@ void Win32ToggleFullscreen( vout_thread_t *p_vout )
                           rect.right, rect.bottom,
                           SWP_NOZORDER|SWP_FRAMECHANGED );
 
-            HWND topLevelParent = GetParent( p_vout->p_sys->hparent );
-            //HWND topLevelParent = GetAncestor( p_vout->p_sys->hparent, GA_ROOT );
+            // HWND topLevelParent = GetParent( p_vout->p_sys->hparent );
+            HWND topLevelParent = GetAncestor( p_vout->p_sys->hparent, GA_ROOT );
             ShowWindow( topLevelParent, SW_SHOW );
             SetForegroundWindow( p_vout->p_sys->hparent );
             ShowWindow( hwnd, SW_HIDE );




More information about the vlc-devel mailing list