diff --git a/kutils/kmediaplayer/kmediaplayer.cpp b/kutils/kmediaplayer/kmediaplayer.cpp index f84dbfc6..fa7e7a1d 100644 --- a/kutils/kmediaplayer/kmediaplayer.cpp +++ b/kutils/kmediaplayer/kmediaplayer.cpp @@ -219,9 +219,8 @@ void KAbstractPlayer::setFullscreen(bool fullscreen) #define COMMON_DESTRUCTOR \ kDebug() << i18n("destroying player"); \ - if (m_handle) { \ - mpv_terminate_destroy(m_handle); \ - } \ + m_stopprocessing = true; \ + mpv_terminate_destroy(m_handle); \ if (m_settings) { \ delete m_settings; \ } @@ -255,7 +254,7 @@ void KAbstractPlayer::setFullscreen(bool fullscreen) } #define COMMMON_EVENT_HANDLER \ - while (m_handle) { \ + while (!m_stopprocessing) { \ mpv_event *event = mpv_wait_event(m_handle, 0); \ if (event->event_id == MPV_EVENT_NONE) { \ break; \ diff --git a/kutils/kmediaplayer/kmediaplayer.h b/kutils/kmediaplayer/kmediaplayer.h index 160299bc..d8eb7f01 100644 --- a/kutils/kmediaplayer/kmediaplayer.h +++ b/kutils/kmediaplayer/kmediaplayer.h @@ -270,6 +270,7 @@ private: #endif // MAKE_KMEDIAPLAYER_LIB QString m_appname; QSettings *m_settings; + bool m_stopprocessing; }; @@ -336,6 +337,7 @@ private: #endif // MAKE_KMEDIAPLAYER_LIB QString m_appname; QSettings *m_settings; + bool m_stopprocessing; }; #endif // KMEDIAPLAYER_H