[vlc-devel] commit: Fix hidding of fullscreen controller after leaving fullscreen ( Lukas Durfina )
git version control
git at videolan.org
Thu Jun 26 07:23:50 CEST 2008
vlc | branch: master | Lukas Durfina <lukas.durfina at gmail.com> | Wed Jun 25 14:25:44 2008 +0200| [c617646c2e1a5675791200e7eeb54f111875a559]
Fix hidding of fullscreen controller after leaving fullscreen
Signed-off-by: Jean-Baptiste Kempf <jb at videolan.org>
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=c617646c2e1a5675791200e7eeb54f111875a559
---
modules/gui/qt4/components/interface_widgets.cpp | 16 ++++++++++------
modules/gui/qt4/components/interface_widgets.hpp | 4 +++-
2 files changed, 13 insertions(+), 7 deletions(-)
diff --git a/modules/gui/qt4/components/interface_widgets.cpp b/modules/gui/qt4/components/interface_widgets.cpp
index 710cc55..1e0d349 100644
--- a/modules/gui/qt4/components/interface_widgets.cpp
+++ b/modules/gui/qt4/components/interface_widgets.cpp
@@ -878,7 +878,7 @@ FullscreenControllerWidget::FullscreenControllerWidget( intf_thread_t *_p_i,
MainInterface *_p_mi, bool b_advControls, bool b_shiny )
: ControlsWidget( _p_i, _p_mi, b_advControls, b_shiny, true ),
i_lastPosX( -1 ), i_lastPosY( -1 ), i_hideTimeout( 1 ),
- b_mouseIsOver( false )
+ b_mouseIsOver( false ), b_isFullscreen( false )
{
setWindowFlags( Qt::ToolTip );
@@ -976,7 +976,11 @@ void FullscreenControllerWidget::slowHideFSC()
}
else
{
+#ifdef WIN32TRICK
+ if ( windowOpacity() > 0.0 && !fscHidden )
+#else
if ( windowOpacity() > 0.0 )
+#endif
{
/* we should use 0.01 because of 100 pieces ^^^
but than it cannt be done in time */
@@ -1013,7 +1017,7 @@ void FullscreenControllerWidget::customEvent( QEvent *event )
{
int type = event->type();
- if ( type == FullscreenControlShow_Type )
+ if ( type == FullscreenControlShow_Type && b_isFullscreen )
{
#ifdef WIN32TRICK
// after quiting and going to fs, we need to call show()
@@ -1150,7 +1154,8 @@ static int regMouseMoveCallback( vlc_object_t *vlc_object, const char *variable,
if ( var_GetBool( p_vout, "fullscreen" ) && !b_registered )
{
- p_fs->SetHideTimeout( var_GetInteger( p_vout, "mouse-hide-timeout" ) );
+ p_fs->setHideTimeout( var_GetInteger( p_vout, "mouse-hide-timeout" ) );
+ p_fs->setIsFullscreen( true );
var_AddCallback( p_vout, "mouse-moved",
showFullscreenControllCallback, (void *) p_fs );
b_registered = true;
@@ -1158,14 +1163,13 @@ static int regMouseMoveCallback( vlc_object_t *vlc_object, const char *variable,
if ( !var_GetBool( p_vout, "fullscreen" ) && b_registered )
{
+ p_fs->setIsFullscreen( false );
+ p_fs->hide();
var_DelCallback( p_vout, "mouse-moved",
showFullscreenControllCallback, (void *) p_fs );
b_registered = false;
}
- if ( !var_GetBool( p_vout, "fullscreen" ) )
- p_fs->hide();
-
return VLC_SUCCESS;
}
diff --git a/modules/gui/qt4/components/interface_widgets.hpp b/modules/gui/qt4/components/interface_widgets.hpp
index ccd0953..c1071d6 100644
--- a/modules/gui/qt4/components/interface_widgets.hpp
+++ b/modules/gui/qt4/components/interface_widgets.hpp
@@ -250,7 +250,8 @@ public:
FullscreenControllerWidget( intf_thread_t *, MainInterface*, bool, bool );
virtual ~FullscreenControllerWidget();
- void SetHideTimeout( int hideTimeout ) { i_hideTimeout = hideTimeout; }
+ void setHideTimeout( int hideTimeout ) { i_hideTimeout = hideTimeout; }
+ void setIsFullscreen( bool isFS ) { b_isFullscreen = isFS; }
void regFullscreenCallback( vout_thread_t *p_vout );
bool isFSCHidden();
@@ -283,6 +284,7 @@ private:
int i_lastPosY;
int i_hideTimeout; /* FSC hiding timeout, same as mouse hiding timeout */
bool b_mouseIsOver;
+ bool b_isFullscreen;
#ifdef WIN32TRICK
bool fscHidden;
More information about the vlc-devel
mailing list