From 91f9ca280db242c75e92e4ca4f54848b12e17100 Mon Sep 17 00:00:00 2001 From: Johan Smith Agudelo Rodriguez Date: Tue, 24 Jan 2017 14:27:57 -0500 Subject: [PATCH] fix #80, Dock do not dodge Spotify --- app/xwindowinterface.cpp | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/app/xwindowinterface.cpp b/app/xwindowinterface.cpp index 4a97331e8..9da1b7933 100644 --- a/app/xwindowinterface.cpp +++ b/app/xwindowinterface.cpp @@ -161,7 +161,8 @@ bool XWindowInterface::isOnCurrentDesktop(WId wid) const WindowInfoWrap XWindowInterface::requestInfo(WId wid) const { - const KWindowInfo winfo{wid, NET::WMFrameExtents | NET::WMWindowType | NET::WMGeometry | NET::WMState}; + const KWindowInfo winfo{wid, NET::WMFrameExtents | NET::WMWindowType | NET::WMGeometry | NET::WMState + , NET::WM2WindowClass}; WindowInfoWrap winfoWrap; if (!winfo.valid()) { @@ -190,10 +191,18 @@ bool XWindowInterface::isValidWindow(const KWindowInfo &winfo) const | NET::MenuMask | NET::SplashMask | NET::NormalMask); - if (winType == -1 || (winType & NET::Menu) || (winType & NET::Dock) || (winType & NET::Splash)) - return false; + if (winType == -1) { + const KWindowInfo win{winfo.win(), 0, NET::WM2WindowClass}; - return true; + // NOTE: Impossible to get type information from the spotify, then I need add a exception + // maybe is a bug of spotify. + if (win.windowClassName() == "spotify") + return true; + else + return false; + } + + return !((winType & NET::Menu) || (winType & NET::Dock) || (winType & NET::Splash)); } void XWindowInterface::windowChangedProxy(WId wid, NET::Properties prop1, NET::Properties2 prop2)