]> git.sesse.net Git - vlc/commitdiff
Qt: toggle minimal view should not change the interface size
authorJean-Philippe Andre <jpeg@via.ecp.fr>
Sat, 11 Apr 2009 04:41:01 +0000 (12:41 +0800)
committerJean-Philippe Andre <jpeg@via.ecp.fr>
Sat, 11 Apr 2009 04:42:22 +0000 (12:42 +0800)
modules/gui/qt4/main_interface.cpp
modules/gui/qt4/main_interface.hpp

index edfa08b2a75d86afac1de297c92eb5d6aba810d9..f02edac7389a7941c4a2d54f408106366f855ede 100644 (file)
@@ -83,6 +83,9 @@ MainInterface::MainInterface( intf_thread_t *_p_intf ) : QVLCMW( _p_intf )
     fullscreenControls   = NULL;
     cryptedLabel         = NULL;
 
+    bgWasVisible         = false;
+    i_bg_height          = 0;
+
     /* Ask for privacy */
     askForPrivacy();
 
@@ -606,13 +609,16 @@ QSize MainInterface::sizeHint() const
 
     if( VISIBLE( bgWidget ) )
     {
-        nheight += bgWidget->size().height();
-        nwidth  = bgWidget->size().width();
+        if( i_bg_height )
+            nheight += i_bg_height;
+        else
+            nheight += bgWidget->size().height();
+        nwidth  = __MAX( nwidth, bgWidget->size().width() );
     }
     else if( videoIsActive && videoWidget->isVisible() )
     {
         nheight += videoWidget->sizeHint().height();
-        nwidth  = videoWidget->sizeHint().width();
+        nwidth  = __MAX( nwidth, videoWidget->sizeHint().width() );
     }
 #if 0
     if( !dockPL->isFloating() && dockPL->isVisible() && dockPL->widget()  )
@@ -820,7 +826,10 @@ void MainInterface::toggleMinimalView( bool b_switch )
     if( i_visualmode != QT_ALWAYS_VIDEO_MODE &&
         i_visualmode != QT_MINIMAL_MODE )
     { /* NORMAL MODE then */
-        if( !videoWidget || videoWidget->isHidden() ) emit askBgWidgetToToggle();
+        if( !videoWidget || videoWidget->isHidden() )
+        {
+            emit askBgWidgetToToggle();
+        }
         else
         {
             /* If video is visible, then toggle the status of bgWidget */
@@ -828,10 +837,13 @@ void MainInterface::toggleMinimalView( bool b_switch )
         }
     }
 
+    i_bg_height = bgWidget->height();
+
     menuBar()->setVisible( !b_switch );
     controls->setVisible( !b_switch );
     statusBar()->setVisible( !b_switch );
     inputC->setVisible( !b_switch );
+
     doComponentsUpdate();
 
     emit minimalViewToggled( b_switch );
index 3fd00aecb27510e9ce3a600b808b05e607b1da5e..af0dcbc015f00c85929948d1419367c030540744 100644 (file)
@@ -139,6 +139,7 @@ private:
     int                  i_visualmode;        ///< Visual Mode
     pl_dock_e            i_pl_dock;
     bool                 isDocked() { return ( i_pl_dock != PL_UNDOCKED ); }
+    int                  i_bg_height;         ///< Save height of bgWidget
 
     /* Status Bar */
     QLabel              *nameLabel;