aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/qmmp/output.cpp10
-rw-r--r--src/ui/mainvisual.cpp2
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;