Blackberry: Fix spurious position udpates in playlists
authorThomas McGuire <thomas.mcguire.qnx@kdab.com>
Fri, 27 Jul 2012 11:19:11 +0000 (13:19 +0200)
committerQt by Nokia <qt-info@nokia.com>
Mon, 30 Jul 2012 13:27:31 +0000 (15:27 +0200)
Change-Id: I2652cab793034e55a4eb7e52bb534c22983d9517
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
src/plugins/blackberry/bbmediaplayercontrol.cpp

index e37c880..1660098 100644 (file)
@@ -557,7 +557,12 @@ bool BbMediaPlayerControl::nativeEventFilter(const QByteArray &eventType, void *
 
             // Prevent spurious position change events from overriding our own position, for example
             // when setting the position to 0 in stop().
-            if (m_state != QMediaPlayer::PlayingState)
+            // Also, don't change the position while we're loading the media, as then play() would
+            // set a wrong initial position.
+            if (m_state != QMediaPlayer::PlayingState ||
+                m_mediaStatus == QMediaPlayer::LoadingMedia ||
+                m_mediaStatus == QMediaPlayer::NoMedia ||
+                m_mediaStatus == QMediaPlayer::InvalidMedia)
                 return false;
 
             const qint64 newPosition = QString::fromLatin1(mmrenderer_event_get_position(event)).toLongLong();