Sophie

Sophie

distrib > Mageia > 1 > i586 > media > core-updates-src > by-pkgid > 996fb775a0367c252bf484d38c96aec7 > files > 2

kdemultimedia4-4.6.5-0.1.mga1.src.rpm

--- kdemultimedia/kmix/backends/mixer_pulse.cpp	2011/07/12 18:58:53	1241345
+++ kdemultimedia/kmix/backends/mixer_pulse.cpp	2011/07/12 19:01:32	1241346
@@ -754,7 +754,12 @@
         return;
     }
     addDevice((*map)[index]);
-    emit controlsReconfigured(_mixer->id());
+    // Do not emit directly to ensure all connected slots are executed
+    // in their own event loop.
+    QMetaObject::invokeMethod(this,
+                              "controlsReconfigured",
+                              Qt::QueuedConnection,
+                              Q_ARG(QString, _mixer->id()));
 }
 
 void Mixer_PULSE::removeWidget(int index)
@@ -778,7 +783,12 @@
         {
             delete *iter;
             m_mixDevices.erase(iter);
-            emit controlsReconfigured(_mixer->id());
+            // Do not emit directly to ensure all connected slots are executed
+            // in their own event loop.
+            QMetaObject::invokeMethod(this,
+                                      "controlsReconfigured",
+                                      Qt::QueuedConnection,
+                                      Q_ARG(QString, _mixer->id()));
             return;
         }
     }
@@ -799,7 +809,12 @@
         delete *iter;
         m_mixDevices.erase(iter);
     }
-    emit controlsReconfigured(_mixer->id());
+    // Do not emit directly to ensure all connected slots are executed
+    // in their own event loop.
+    QMetaObject::invokeMethod(this,
+                              "controlsReconfigured",
+                              Qt::QueuedConnection,
+                              Q_ARG(QString, _mixer->id()));
 }
 
 void Mixer_PULSE::addDevice(devinfo& dev)
@@ -990,7 +1005,7 @@
         kDebug(67100) <<  "Using PulseAudio for mixer: " << m_mixerName;
         m_isOpen = true;
     }
- 
+
     return 0;
 }