From 6a9c2a6cac33ccffea2a4989782e299c121ce518 Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Mon, 7 Apr 2014 06:01:23 +0000 Subject: [PATCH] Work around hang on popup menu opening in non-local directory in Konqueror --- libkonq/konq_popupmenu.cc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/libkonq/konq_popupmenu.cc b/libkonq/konq_popupmenu.cc index e5b807327..b2abc9279 100644 --- a/libkonq/konq_popupmenu.cc +++ b/libkonq/konq_popupmenu.cc @@ -423,14 +423,15 @@ void KonqPopupMenu::setup(KonqPopupFlags kpf) // If a local path is available, monitor that instead of the given remote URL... KURL realURL = m_sViewURL; if (!realURL.isLocalFile()) { + d->localURLSlotFired = false; TDEIO::LocalURLJob* localURLJob = TDEIO::localURL(m_sViewURL); if (localURLJob) { 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())); - d->localURLSlotFired = false; +//printf("[RAJA DEBUG 600.0] Waiting for result... %p\n\r", this); fflush(stdout); while (!d->localURLSlotFired) { + usleep(100); tqApp->eventLoop()->processEvents(TQEventLoop::ExcludeUserInput); - usleep(1000); } if (d->localURLResultIsLocal) { realURL = d->localURLResultURL; @@ -1228,6 +1229,7 @@ KURL::List KonqPopupMenu::popupURLList() const void KonqPopupMenu::slotLocalURL(TDEIO::LocalURLJob *job, const KURL& url, bool isLocal) { +//printf("[RAJA DEBUG 600.1] In KonqPopupMenu::slotLocalURL %p\n\r", this); fflush(stdout); d->localURLSlotFired = true; d->localURLResultURL = url; d->localURLResultIsLocal = isLocal; @@ -1235,6 +1237,7 @@ void KonqPopupMenu::slotLocalURL(TDEIO::LocalURLJob *job, const KURL& url, bool void KonqPopupMenu::slotLocalURLKIODestroyed() { +//printf("[RAJA DEBUG 600.2] In KonqPopupMenu::slotLocalURLKIODestroyed %p\n\r", this); fflush(stdout); if (!d->localURLSlotFired) { d->localURLSlotFired = true; d->localURLResultURL = KURL();