diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/qmmp/output.cpp | 10 | ||||
| -rw-r--r-- | src/ui/mainvisual.cpp | 2 |
2 files changed, 8 insertions, 4 deletions
diff --git a/src/qmmp/output.cpp b/src/qmmp/output.cpp index a7ae2d8ed..bf08da376 100644 --- a/src/qmmp/output.cpp +++ b/src/qmmp/output.cpp @@ -139,12 +139,15 @@ Output::Output (QObject* parent) : QThread (parent), r (stackSize()) Output::~Output() { qDebug("Output::~Output()"); - Visual *visual = 0; - foreach(visual, m_vis_map.values ()) + foreach(Visual *visual, m_vis_map.values ()) { + visual->setOutput(0); visual->close(); } - //m_vis_map.clear(); + foreach (Visual *visual , visuals) //external + { + visual->setOutput(0); + } } void Output::error ( const QString &e ) @@ -165,6 +168,7 @@ void Output::addVisual ( Visual *v ) void Output::removeVisual (Visual *v) { + v->setOutput(0); visuals.removeAll (v); if (m_vis_map.key(v)) { diff --git a/src/ui/mainvisual.cpp b/src/ui/mainvisual.cpp index b52bcc0ce..61807bf11 100644 --- a/src/ui/mainvisual.cpp +++ b/src/ui/mainvisual.cpp @@ -166,7 +166,7 @@ void MainVisual::timeout() update(); m_draw = TRUE; } - else if (m_draw && output() && !output()->isRunning()) + else if (m_draw && (!output() || !output()->isRunning())) { m_draw = FALSE; m_pixmap = m_bg; |
