From f01e6356a05f6d4dbb6afbc52bafc177cd4e587c Mon Sep 17 00:00:00 2001 From: audoban Date: Sun, 12 Mar 2017 13:09:38 -0500 Subject: [PATCH] Only visibilityManager can call mustBeHide/Shown --- app/visibilitymanager.cpp | 18 ++++++++++-------- app/visibilitymanager.h | 6 ++++-- app/visibilitymanager_p.h | 2 +- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/app/visibilitymanager.cpp b/app/visibilitymanager.cpp index aaa62a973..b172c8b0c 100644 --- a/app/visibilitymanager.cpp +++ b/app/visibilitymanager.cpp @@ -48,13 +48,13 @@ VisibilityManagerPrivate::VisibilityManagerPrivate(PlasmaQuick::ContainmentView connect(&timerShow, &QTimer::timeout, this, [this]() { if (isHidden) { // qDebug() << "must be shown"; - emit this->q->mustBeShown(); + emit this->q->mustBeShown(VisibilityManager::QPrivateSignal{}); } }); connect(&timerHide, &QTimer::timeout, this, [this]() { if (!blockHiding && !isHidden && !dragEnter) { // qDebug() << "must be hide"; - emit this->q->mustBeHide(); + emit this->q->mustBeHide(VisibilityManager::QPrivateSignal{}); } }); wm->setDockExtraFlags(*view); @@ -218,7 +218,7 @@ void VisibilityManagerPrivate::setBlockHiding(bool blockHiding) if (isHidden) { isHidden = false; emit q->isHiddenChanged(); - emit q->mustBeShown(); + emit q->mustBeShown(VisibilityManager::QPrivateSignal{}); } } else { updateHiddenState(); @@ -255,7 +255,7 @@ inline void VisibilityManagerPrivate::raiseDock(bool raise) if (hideNow) { hideNow = false; - emit q->mustBeHide(); + emit q->mustBeHide(VisibilityManager::QPrivateSignal{}); } else if (!timerHide.isActive()) timerHide.start(); } @@ -271,7 +271,7 @@ void VisibilityManagerPrivate::raiseDockTemporarily() timerShow.stop(); if (isHidden) - emit q->mustBeShown(); + emit q->mustBeShown(VisibilityManager::QPrivateSignal{}); QTimer::singleShot(qBound(1800, 2 * timerHide.interval(), 3000), this, [&]() { raiseTemporarily = false; @@ -435,9 +435,9 @@ inline void VisibilityManagerPrivate::restoreConfig() emit q->timerHideChanged(); if (mode == Dock::AlwaysVisible) { - setMode(mode); + setMode(mode); } else { - QTimer::singleShot(3000, this, [&, mode]() { + QTimer::singleShot(5000, this, [&, mode]() { setMode(mode); }); setRaiseOnDesktop(config.readEntry("raiseOnDesktopChange", false)); @@ -480,7 +480,9 @@ bool VisibilityManagerPrivate::event(QEvent *ev) case QEvent::DragEnter: dragEnter = true; - emit q->mustBeShown(); + if (isHidden) + emit q->mustBeShown(VisibilityManager::QPrivateSignal{}); + break; case QEvent::DragLeave: diff --git a/app/visibilitymanager.h b/app/visibilitymanager.h index 338cf0055..a67b44f40 100644 --- a/app/visibilitymanager.h +++ b/app/visibilitymanager.h @@ -73,8 +73,8 @@ public: void setTimerHide(int msec); signals: - void mustBeShown(); - void mustBeHide(); + void mustBeShown(QPrivateSignal); + void mustBeHide(QPrivateSignal); void modeChanged(); void raiseOnDesktopChanged(); @@ -87,6 +87,8 @@ signals: private: VisibilityManagerPrivate *const d; + + friend class VisibilityManagerPrivate; }; } diff --git a/app/visibilitymanager_p.h b/app/visibilitymanager_p.h index 51eb3399d..55aed0269 100644 --- a/app/visibilitymanager_p.h +++ b/app/visibilitymanager_p.h @@ -66,7 +66,7 @@ public: QTimer timerHide; QTimer timerCheckWindows; QRect dockGeometry; - bool isHidden{true}; + bool isHidden{false}; bool dragEnter{false}; bool blockHiding{false}; bool containsMouse{false};