diff --git a/app/wm/tracker/windowstracker.cpp b/app/wm/tracker/windowstracker.cpp index 0a744cf5c..1955488a3 100644 --- a/app/wm/tracker/windowstracker.cpp +++ b/app/wm/tracker/windowstracker.cpp @@ -797,12 +797,12 @@ void Windows::updateHints(Latte::View *view) //! PASS 2 if (foundActiveInCurScreen && !foundActiveTouchInCurScreen) { //! Second Pass to track also Child windows if needed - /*qDebug() << "Windows Array..."; - for (const auto &winfo : m_windows) { - qDebug() << " - " << winfo.wid() << " - " << winfo.display() << " parent : " << winfo.parentId(); - } - qDebug() << " - - - - - "; - */ + + //qDebug() << "Windows Array..."; + //for (const auto &winfo : m_windows) { + // qDebug() << " - " << winfo.wid() << " - " << winfo.isValid() << " - " << winfo.display() << " - " << winfo.geometry() << " parent : " << winfo.parentId(); + //} + //qDebug() << " - - - - - "; WindowInfoWrap activeInfo = m_windows[activeWinId]; WindowId mainWindowId = activeInfo.isChildWindow() ? activeInfo.parentId() : activeWinId; diff --git a/app/wm/waylandinterface.cpp b/app/wm/waylandinterface.cpp index 8606613b8..7a547a7bf 100644 --- a/app/wm/waylandinterface.cpp +++ b/app/wm/waylandinterface.cpp @@ -453,7 +453,7 @@ WindowInfoWrap WaylandInterface::requestInfo(WindowId wid) const winfoWrap.setActivities(QStringList()); } } else { - return {}; + winfoWrap.setIsValid(false); } return winfoWrap; diff --git a/app/wm/xwindowinterface.cpp b/app/wm/xwindowinterface.cpp index 8c942737e..114e73a4d 100644 --- a/app/wm/xwindowinterface.cpp +++ b/app/wm/xwindowinterface.cpp @@ -321,7 +321,9 @@ WindowInfoWrap XWindowInterface::requestInfo(WindowId wid) const WindowInfoWrap winfoWrap; - if (isValidWindow(winfo) && !isPlasmaDesktop) { + if (!winfo.valid()) { + winfoWrap.setIsValid(false); + } else if (isValidWindow(winfo) && !isPlasmaDesktop) { winfoWrap.setIsValid(true); winfoWrap.setWid(wid); winfoWrap.setParentId(winfo.transientFor()); @@ -645,7 +647,7 @@ void XWindowInterface::windowChangedProxy(WId wid, NET::Properties prop1, NET::P //! ignore when the user presses a key, or a window is sending X events etc. //! without needing to (e.g. Firefox, https://bugzilla.mozilla.org/show_bug.cgi?id=1389953) //! NET::WM2UserTime, NET::WM2IconPixmap etc.... - if (prop1 == 0 && !(prop2 & NET::WM2Activities)) { + if (prop1 == 0 && !(prop2 & (NET::WM2Activities | NET::WM2TransientFor))) { return; }