CVS commit by vriezen: Make sure XVideo::quit eventually reached state NotRunning M +1 -1 kmplayerpartbase.cpp 1.134 M +0 -1 kmplayerprocess.cpp 1.119 M +13 -12 kmplayervdr.cpp 1.38 --- kdeextragear-2/kmplayer/src/kmplayerpartbase.cpp #1.133:1.134 @@ -225,7 +225,7 @@ void PartBase::setProcess (const char * disconnect (m_process, SIGNAL (lengthFound (int)), this, SLOT (lengthFound (int))); + m_process->quit (); disconnect (m_source, SIGNAL (currentURL (Source *)), m_process, SLOT (play (Source *))); - m_process->quit (); } m_process = process; --- kdeextragear-2/kmplayer/src/kmplayerprocess.cpp #1.118:1.119 @@ -361,5 +361,4 @@ KDE_NO_EXPORT bool MPlayer::play (Source KDE_NO_EXPORT bool MPlayer::stop () { if (!m_source || !m_process || !m_process->isRunning ()) return true; - kdDebug () << "MPlayer::stop ()" << kdBacktrace () << endl; if (m_use_slave) sendCommand (QString ("quit")); --- kdeextragear-2/kmplayer/src/kmplayervdr.cpp #1.37:1.38 @@ -704,5 +704,5 @@ KDE_NO_EXPORT bool XVideo::ready () { KDE_NO_EXPORT bool XVideo::quit () { - if (!playing ()) return true; + if (playing ()) { if (m_backend) m_backend->quit (); @@ -710,5 +710,5 @@ KDE_NO_EXPORT bool XVideo::quit () { view ()->viewer ()->sendKeyEvent ('q'); #if KDE_IS_VERSION(3, 1, 90) - m_process->wait(2); + m_process->wait(1); #else QTime t; @@ -716,7 +716,8 @@ KDE_NO_EXPORT bool XVideo::quit () { do { KProcessController::theKProcessController->waitForProcessExit (2); - } while (t.elapsed () < 2000 && m_process->isRunning ()); + } while (t.elapsed () < 1000 && m_process->isRunning ()); #endif - return KMPlayer::Process::stop (); + } + return KMPlayer::Process::quit (); }