Branch: master

1de6538f 2014-04-07 16:29:01 Timothy Pearson
Fix Konqueror popup menu hang when tdeioslave localurl job is not responding properly
M libkonq/konq_popupmenu.cc
diff --git a/libkonq/konq_popupmenu.cc b/libkonq/konq_popupmenu.cc
index c5042b8..b5e3be4 100644
--- a/libkonq/konq_popupmenu.cc
+++ b/libkonq/konq_popupmenu.cc
@@ -429,8 +429,7 @@
             connect(localURLJob, TQT_SIGNAL(localURL(TDEIO::LocalURLJob*, const KURL&, bool)), this, TQT_SLOT(slotLocalURL(TDEIO::LocalURLJob*, const KURL&, bool)));
             connect(localURLJob, TQT_SIGNAL(destroyed()), this, TQT_SLOT(slotLocalURLKIODestroyed()));
             while (!d->localURLSlotFired) {
-                usleep(100);
-                tqApp->eventLoop()->processEvents(TQEventLoop::ExcludeUserInput);
+                kapp->eventLoop()->enterLoop();
             }
             if (d->localURLResultIsLocal) {
                 realURL = d->localURLResultURL;
@@ -1231,6 +1230,7 @@
   d->localURLSlotFired = true;
   d->localURLResultURL = url;
   d->localURLResultIsLocal = isLocal;
+  kapp->eventLoop()->exitLoop();
 }
 
 void KonqPopupMenu::slotLocalURLKIODestroyed()
@@ -1239,6 +1239,7 @@
     d->localURLSlotFired = true;
     d->localURLResultURL = KURL();
     d->localURLResultIsLocal = false;
+    kapp->eventLoop()->exitLoop();
   }
 }