diff --git a/app/dockcorona.cpp b/app/dockcorona.cpp index 46ea2a7c6..c952f9f70 100644 --- a/app/dockcorona.cpp +++ b/app/dockcorona.cpp @@ -71,10 +71,15 @@ DockCorona::DockCorona(QObject *parent) } connect(m_activityConsumer, &KActivities::Consumer::serviceStatusChanged, this, &DockCorona::load); + + m_docksScreenSyncTimer.setSingleShot(true); + m_docksScreenSyncTimer.setInterval(2500); + connect(&m_docksScreenSyncTimer, &QTimer::timeout, this, &DockCorona::syncDockViews); } DockCorona::~DockCorona() { + m_docksScreenSyncTimer.stop(); cleanConfig(); while (!containments().isEmpty()) { @@ -293,7 +298,7 @@ void DockCorona::screenRemoved(QScreen *screen) void DockCorona::screenCountChanged() { - QTimer::singleShot(2500, this, &DockCorona::syncDockViews); + m_docksScreenSyncTimer.start(); } void DockCorona::syncDockViews() @@ -566,8 +571,10 @@ void DockCorona::addDock(Plasma::Containment *containment) } } - if (!found) + if (!found) { + qDebug() << "adding dock rejected, screen not available : " << connector; return; + } } qDebug() << "Adding dock for container..."; diff --git a/app/dockcorona.h b/app/dockcorona.h index 0395cb466..054003693 100644 --- a/app/dockcorona.h +++ b/app/dockcorona.h @@ -107,6 +107,8 @@ private: QHash m_waitingDockViews; QList m_alternativesObjects; + QTimer m_docksScreenSyncTimer; + KActivities::Consumer *m_activityConsumer; QPointer aboutDialog; diff --git a/app/dockview.cpp b/app/dockview.cpp index 05025f3d9..772788063 100644 --- a/app/dockview.cpp +++ b/app/dockview.cpp @@ -104,7 +104,7 @@ DockView::DockView(Plasma::Corona *corona, QScreen *targetScreen) } m_screenSyncTimer.setSingleShot(true); - m_screenSyncTimer.setInterval(3000); + m_screenSyncTimer.setInterval(2000); connect(&m_screenSyncTimer, &QTimer::timeout, this, &DockView::reconsiderScreen); }