diff -r 075425b8d9a4 -r 189d20c34778 radioapp/radiowidgets/src/radiofrequencystrip.cpp --- a/radioapp/radiowidgets/src/radiofrequencystrip.cpp Fri Jun 11 13:38:32 2010 +0300 +++ b/radioapp/radiowidgets/src/radiofrequencystrip.cpp Wed Jun 23 18:12:57 2010 +0300 @@ -336,9 +336,11 @@ emit manualSeekChanged( mManualSeekMode ); if ( mManualSeekMode ) { + grabMouse(); hideButtons(); mManualSeekTimerId = startTimer( MANUALSEEK_SIGNAL_DELAY ); } else { + ungrabMouse(); showButtons(); killTimer( mManualSeekTimerId ); mManualSeekTimerId = 0; @@ -389,10 +391,8 @@ /*! * \reimp */ -void RadioFrequencyStrip::scrollPosChanged( QPointF newPosition ) +void RadioFrequencyStrip::scrollPosChanged() { - Q_UNUSED( newPosition ); - if ( mManualSeekMode ) { const int pos = selectorPos(); const uint frequency = mPositions.value( pos ); @@ -408,7 +408,7 @@ */ void RadioFrequencyStrip::resizeEvent ( QGraphicsSceneResizeEvent* event ) { - LOG_METHOD_ENTER; + LOG_METHOD; RadioStripBase::resizeEvent( event ); const qreal height = event->newSize().height(); @@ -457,7 +457,12 @@ RadioStripBase::mousePressEvent( event ); mManualSeekTimer->stop(); - if ( !mManualSeekMode ) { + if ( mManualSeekMode ) { + const bool insideStrip = rect().contains( event->pos() ); + if ( !insideStrip ) { + toggleManualSeek(); + } + } else { mManualSeekTimer->start( MANUALSEEK_START_TIMEOUT ); } }