]> git.sesse.net Git - vlc/commitdiff
Qt4: fix faulty playlist show / hide logic
authorJakob Leben <jleben@videolan.org>
Tue, 3 Nov 2009 11:15:03 +0000 (12:15 +0100)
committerJakob Leben <jleben@videolan.org>
Tue, 3 Nov 2009 11:15:03 +0000 (12:15 +0100)
Fixes #2899, at least on Linux. Can somebody test on Windows, please?

modules/gui/qt4/components/playlist/playlist.cpp
modules/gui/qt4/main_interface.cpp

index 96d50122aafd10d5d15fe6e59849ce808b049d22..bcef9ea7f42c1353c91cedb74474c957e1b866e6 100644 (file)
@@ -132,12 +132,11 @@ void PlaylistWidget::closeEvent( QCloseEvent *event )
     if( THEDP->isDying() )
     {
         /* FIXME is it needed ? */
-        close();
+        event->accept();
     }
     else
     {
-        if( p_intf->p_sys->p_mi )
-            p_intf->p_sys->p_mi->togglePlaylist();
+        hide();
+        event->ignore();
     }
-    event->accept();
 }
index 05359a0b1eb849844a63a519f47351b2129c62a6..40a8722e6a133423b010cdb42906ce5acdaa6f03 100644 (file)
@@ -964,9 +964,21 @@ void MainInterface::togglePlaylist()
     else
     {
     /* toggle the visibility of the playlist */
-       TOGGLEV( playlistWidget );
-       playlistVisible = !playlistVisible;
-       //doComponentsUpdate(); //resize( sizeHint() );
+      //TOGGLEV( playlistWidget );
+
+      if( playlistWidget->isVisible() && !playlistWidget->isMinimized() )
+      {
+          playlistWidget->hide();
+      }
+      else
+      {
+          playlistWidget->setWindowState(
+              playlistWidget->windowState() & ~Qt::WindowMinimized | Qt::WindowActive);
+          playlistWidget->show();
+      }
+
+      playlistVisible = !playlistVisible;
+      //doComponentsUpdate(); //resize( sizeHint() );
     }
 }