Commit c617646c authored by Lukas Durfina's avatar Lukas Durfina Committed by Jean-Baptiste Kempf

Fix hidding of fullscreen controller after leaving fullscreen

Signed-off-by: default avatarJean-Baptiste Kempf <jb@videolan.org>
parent d89fff7e
...@@ -878,7 +878,7 @@ FullscreenControllerWidget::FullscreenControllerWidget( intf_thread_t *_p_i, ...@@ -878,7 +878,7 @@ FullscreenControllerWidget::FullscreenControllerWidget( intf_thread_t *_p_i,
MainInterface *_p_mi, bool b_advControls, bool b_shiny ) MainInterface *_p_mi, bool b_advControls, bool b_shiny )
: ControlsWidget( _p_i, _p_mi, b_advControls, b_shiny, true ), : ControlsWidget( _p_i, _p_mi, b_advControls, b_shiny, true ),
i_lastPosX( -1 ), i_lastPosY( -1 ), i_hideTimeout( 1 ), i_lastPosX( -1 ), i_lastPosY( -1 ), i_hideTimeout( 1 ),
b_mouseIsOver( false ) b_mouseIsOver( false ), b_isFullscreen( false )
{ {
setWindowFlags( Qt::ToolTip ); setWindowFlags( Qt::ToolTip );
...@@ -976,7 +976,11 @@ void FullscreenControllerWidget::slowHideFSC() ...@@ -976,7 +976,11 @@ void FullscreenControllerWidget::slowHideFSC()
} }
else else
{ {
#ifdef WIN32TRICK
if ( windowOpacity() > 0.0 && !fscHidden )
#else
if ( windowOpacity() > 0.0 ) if ( windowOpacity() > 0.0 )
#endif
{ {
/* we should use 0.01 because of 100 pieces ^^^ /* we should use 0.01 because of 100 pieces ^^^
but than it cannt be done in time */ but than it cannt be done in time */
...@@ -1013,7 +1017,7 @@ void FullscreenControllerWidget::customEvent( QEvent *event ) ...@@ -1013,7 +1017,7 @@ void FullscreenControllerWidget::customEvent( QEvent *event )
{ {
int type = event->type(); int type = event->type();
if ( type == FullscreenControlShow_Type ) if ( type == FullscreenControlShow_Type && b_isFullscreen )
{ {
#ifdef WIN32TRICK #ifdef WIN32TRICK
// after quiting and going to fs, we need to call show() // 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, ...@@ -1150,7 +1154,8 @@ static int regMouseMoveCallback( vlc_object_t *vlc_object, const char *variable,
if ( var_GetBool( p_vout, "fullscreen" ) && !b_registered ) 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", var_AddCallback( p_vout, "mouse-moved",
showFullscreenControllCallback, (void *) p_fs ); showFullscreenControllCallback, (void *) p_fs );
b_registered = true; b_registered = true;
...@@ -1158,14 +1163,13 @@ static int regMouseMoveCallback( vlc_object_t *vlc_object, const char *variable, ...@@ -1158,14 +1163,13 @@ static int regMouseMoveCallback( vlc_object_t *vlc_object, const char *variable,
if ( !var_GetBool( p_vout, "fullscreen" ) && b_registered ) if ( !var_GetBool( p_vout, "fullscreen" ) && b_registered )
{ {
p_fs->setIsFullscreen( false );
p_fs->hide();
var_DelCallback( p_vout, "mouse-moved", var_DelCallback( p_vout, "mouse-moved",
showFullscreenControllCallback, (void *) p_fs ); showFullscreenControllCallback, (void *) p_fs );
b_registered = false; b_registered = false;
} }
if ( !var_GetBool( p_vout, "fullscreen" ) )
p_fs->hide();
return VLC_SUCCESS; return VLC_SUCCESS;
} }
......
...@@ -250,7 +250,8 @@ public: ...@@ -250,7 +250,8 @@ public:
FullscreenControllerWidget( intf_thread_t *, MainInterface*, bool, bool ); FullscreenControllerWidget( intf_thread_t *, MainInterface*, bool, bool );
virtual ~FullscreenControllerWidget(); 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 ); void regFullscreenCallback( vout_thread_t *p_vout );
bool isFSCHidden(); bool isFSCHidden();
...@@ -283,6 +284,7 @@ private: ...@@ -283,6 +284,7 @@ private:
int i_lastPosY; int i_lastPosY;
int i_hideTimeout; /* FSC hiding timeout, same as mouse hiding timeout */ int i_hideTimeout; /* FSC hiding timeout, same as mouse hiding timeout */
bool b_mouseIsOver; bool b_mouseIsOver;
bool b_isFullscreen;
#ifdef WIN32TRICK #ifdef WIN32TRICK
bool fscHidden; bool fscHidden;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment