From 54f1e3576eb5441831a6ac0cd45ac3eb64167512 Mon Sep 17 00:00:00 2001 From: Michail Vourlakos Date: Sat, 1 Jun 2019 02:57:47 +0300 Subject: [PATCH] ignore Desktops under X11 --- app/wm/tracker/windows.cpp | 2 +- app/wm/xwindowinterface.cpp | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/app/wm/tracker/windows.cpp b/app/wm/tracker/windows.cpp index e8bc6703b..03318e623 100644 --- a/app/wm/tracker/windows.cpp +++ b/app/wm/tracker/windows.cpp @@ -322,7 +322,7 @@ bool Windows::isValidFor(WindowId wid) const return false; } - return m_windows[wid].isValid(); + return m_windows[wid].isValid() && !m_windows[wid].isPlasmaDesktop(); } QIcon Windows::iconFor(WindowId wid) diff --git a/app/wm/xwindowinterface.cpp b/app/wm/xwindowinterface.cpp index 8f2a66afb..d12028567 100644 --- a/app/wm/xwindowinterface.cpp +++ b/app/wm/xwindowinterface.cpp @@ -464,7 +464,7 @@ bool XWindowInterface::isValidWindow(const KWindowInfo &winfo) const return true; } - constexpr auto types = NET::DockMask | NET::MenuMask | NET::SplashMask | NET::PopupMenuMask | NET::NormalMask | NET::DialogMask; + constexpr auto types = NET::DesktopMask | NET::DockMask | NET::MenuMask | NET::SplashMask | NET::PopupMenuMask | NET::NormalMask | NET::DialogMask; NET::WindowType winType = winfo.windowType(types); const auto winClass = KWindowInfo(winfo.win(), 0, NET::WM2WindowClass).windowClassName(); @@ -473,6 +473,11 @@ bool XWindowInterface::isValidWindow(const KWindowInfo &winfo) const return false; } + //! reject desktop window + if (winType != -1 && (winType & NET::Desktop)) { + return false; + } + if (winType == -1) { // Trying to get more types for verify if the window have any other type winType = winfo.windowType(~types & NET::AllTypesMask);