vlc | branch: master | Ludovic Fauvet <e...@videolan.org> | Thu Sep 29 18:45:51 
2011 +0200| [ee3754df7b0df025a5d85788bdec93069c177be0] | committer: 
Jean-Baptiste Kempf

Qt: Fix corner-case with some top level windows

Signed-off-by: Jean-Baptiste Kempf <j...@videolan.org>

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=ee3754df7b0df025a5d85788bdec93069c177be0
---

 modules/gui/qt4/util/input_slider.cpp |   14 +++++++++++---
 1 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/modules/gui/qt4/util/input_slider.cpp 
b/modules/gui/qt4/util/input_slider.cpp
index 28f6e48..382cfb4 100644
--- a/modules/gui/qt4/util/input_slider.cpp
+++ b/modules/gui/qt4/util/input_slider.cpp
@@ -47,6 +47,7 @@
 #include <QColor>
 #include <QPoint>
 #include <QPropertyAnimation>
+#include <QApplication>
 
 #define MINIMUM 0
 #define MAXIMUM 1000
@@ -291,16 +292,23 @@ void SeekSlider::enterEvent( QEvent * )
         animHandle->setDirection( QAbstractAnimation::Forward );
         animHandle->start();
     }
-    /* Don't show the tooltip if the slider is disabled */
-    if( isEnabled() && inputLength > 0 )
+    /* Don't show the tooltip if the slider is disabled or a menu is open */
+    if( isEnabled() && inputLength > 0 && !qApp->activePopupWidget() )
         mTimeTooltip->show();
 }
 
 void SeekSlider::leaveEvent( QEvent * )
 {
     hideHandleTimer->start();
-    if( !rect().contains( mapFromGlobal( QCursor::pos() ) ) )
+    /* Hide the tooltip
+       - if the mouse leave the slider rect (Note: it can still be
+         over the tooltip!)
+       - if another window is on the way of the cursor */
+    if( !rect().contains( mapFromGlobal( QCursor::pos() ) ) ||
+      ( !isActiveWindow() && !mTimeTooltip->isActiveWindow() ) )
+    {
         mTimeTooltip->hide();
+    }
 }
 
 void SeekSlider::hideEvent( QHideEvent * )

_______________________________________________
vlc-commits mailing list
vlc-commits@videolan.org
http://mailman.videolan.org/listinfo/vlc-commits

Reply via email to