diff --git a/runners/bookmarks/bookmarksrunner.cpp b/runners/bookmarks/bookmarksrunner.cpp --- a/runners/bookmarks/bookmarksrunner.cpp +++ b/runners/bookmarks/bookmarksrunner.cpp @@ -60,8 +60,12 @@ void BookmarksRunner::prep() { - m_browser = m_browserFactory->find(findBrowserName(), this); - connect(this, SIGNAL(teardown()), dynamic_cast(m_browser), SLOT(teardown())); + auto browser = m_browserFactory->find(findBrowserName(), this); + if (m_browser != browser) { + m_browser = browser; + connect(this, &Plasma::AbstractRunner::teardown, + dynamic_cast(m_browser), [this] () { m_browser->teardown(); }); + } m_browser->prepare(); }