From 4c10939484d61b34649465c0a15c4ac172ede9b5 Mon Sep 17 00:00:00 2001 From: Johan Smith Agudelo Rodriguez Date: Fri, 30 Dec 2016 02:45:38 -0500 Subject: [PATCH] if mode is DodgeMaximized, only dodge active window --- app/visibilitymanager.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/app/visibilitymanager.cpp b/app/visibilitymanager.cpp index fb530e3f8..d106b9416 100644 --- a/app/visibilitymanager.cpp +++ b/app/visibilitymanager.cpp @@ -21,6 +21,8 @@ VisibilityManagerPrivate::VisibilityManagerPrivate(PlasmaQuick::ContainmentView connect(&timerCheckWindows, &QTimer::timeout, this, &VisibilityManagerPrivate::checkAllWindows); connect(&timerShow, &QTimer::timeout, q, &VisibilityManager::mustBeShown); connect(&timerHide, &QTimer::timeout, q, &VisibilityManager::mustBeHide); + + wm->setDockDefaultFlags(); } VisibilityManagerPrivate::~VisibilityManagerPrivate() @@ -169,15 +171,15 @@ void VisibilityManagerPrivate::dodgeActive(WId wid) void VisibilityManagerPrivate::dodgeMaximized(WId wid) { + if (wid != wm->activeWindow()) + return; + auto winfo = wm->requestInfo(wid); if (!winfo.isValid() || !winfo.isOnCurrentDesktop() || winfo.isMinimized()) return; - if (winfo.isMaximized()) - raiseDock(false); - else - timerCheckWindows.start(); + raiseDock(winfo.isMaximized()); } void VisibilityManagerPrivate::dodgeWindows(WId wid) @@ -209,11 +211,6 @@ void VisibilityManagerPrivate::checkAllWindows() } else if (std::get<1>(winfo).isMinimized()) { continue; - } else if (mode == Dock::DodgeMaximized) { - if (std::get<1>(winfo).isMaximized()) - raise = false; - - continue; } else if (intersects(std::get<1>(winfo))) { raise = false; break; @@ -269,6 +266,9 @@ bool VisibilityManagerPrivate::event(QEvent *ev) if (mode == Dock::AutoHide) raiseDock(false); + + } else if (ev->type() == QEvent::Show) { + wm->setDockDefaultFlags(); } return QObject::event(ev);