diff --git a/modules/gui/qt4/main_interface.cpp b/modules/gui/qt4/main_interface.cpp index 5b1fa63f85e400c73511338c0d00773d6ff29dec..ba45a68265e28713e9708d51f3aff49e01911d05 100644 --- a/modules/gui/qt4/main_interface.cpp +++ b/modules/gui/qt4/main_interface.cpp @@ -34,7 +34,7 @@ #include "actions_manager.hpp" // killInstance #include "extensions_manager.hpp" // killInstance -#include "util/customwidgets.hpp" // qtEventToVLCKey +#include "util/customwidgets.hpp" // qtEventToVLCKey, QVLCStackedWidget #include "util/qt_dirs.hpp" // toNativeSeparators #include "components/interface_widgets.hpp" // bgWidget, videoWidget @@ -361,7 +361,7 @@ void MainInterface::createMainWidget( QSettings *settings ) mainLayout->setSpacing( 0 ); mainLayout->setMargin( 0 ); /* */ - stackCentralW = new QStackedWidget( main ); + stackCentralW = new QVLCStackedWidget( main ); /* Bg Cone */ bgWidget = new BackgroundWidget( p_intf ); @@ -690,15 +690,11 @@ void MainInterface::togglePlaylist() /* Playlist is not visible, show it */ if( stackCentralW->currentWidget() != playlistWidget ) { - playlistWidget->forceShow(); showTab( playlistWidget ); } else /* Hide it! */ { restoreStackOldWidget(); - stackCentralW->updateGeometry(); - // HACK: So it doesn't limit the stackWidget minimumSize - playlistWidget->forceHide(); } playlistVisible = ( stackCentralW->currentWidget() == playlistWidget ); } diff --git a/modules/gui/qt4/util/customwidgets.hpp b/modules/gui/qt4/util/customwidgets.hpp index 266d954493855a0864b83517d4c7baad0ab21b14..c903ba74266cd1db289051ad09336cc7b70eaa6c 100644 --- a/modules/gui/qt4/util/customwidgets.hpp +++ b/modules/gui/qt4/util/customwidgets.hpp @@ -30,6 +30,7 @@ #include #include #include +#include /** This class provides a QLineEdit which contains a greyed-out hinting @@ -103,6 +104,16 @@ private: Qt::TextElideMode elideMode; }; +class QVLCStackedWidget : public QStackedWidget +{ +public: + QVLCStackedWidget( QWidget *parent ) : QStackedWidget( parent ) { } + QSize minimumSizeHint () const + { + return currentWidget() ? currentWidget()->minimumSizeHint() : QSize(); + } +}; + /* VLC Key/Wheel hotkeys interactions */ class QKeyEvent;