hein updated this revision to Diff 34702. hein added a comment.
It turns out Wine installs its Windows Program Loader as a wine.desktop file, which is useful to "Open With" .exe files, but means if Wine doesn't set a WM_CLASS that we can find a .desktop file by StartupWMClass for, we map windows to this wine.desktop, which leads to a crappy UX. This wine.desktop file thankfully sets NoDisplay=true, so let's expand on our cautious earlier decision to check for NoDisplay only when looking inside .desktop files, to also check NoDisplay when matching by .desktop file name. The StartupWMClass handling still doesn't check for NoDisplay, so an app dev can force to a NoDisplay .desktop by setting StartupWMClass (in keep- ing with the earlier decision to trust StartupWMClass as an overriding directive). The Rewrite Rules engine similarly doesn't check for NoDisplay so you need to know what you're doing when writing rules. It didn't seem good to restrict it in some way, since the entire point of Rewrite Rules is to be able to override compiled code behavior. I can't see any downside to checking NoDisplay for the .desktop file name match part, since those are the "vanilla case" blocks where we try to associate windows with apps on the menu. REPOSITORY R120 Plasma Workspace CHANGES SINCE LAST UPDATE https://phabricator.kde.org/D13058?vs=34699&id=34702 BRANCH Plasma/5.12 REVISION DETAIL https://phabricator.kde.org/D13058 AFFECTED FILES libtaskmanager/taskmanagerrulesrc libtaskmanager/tasktools.cpp To: hein, broulik, davidedmundson Cc: plasma-devel, ragreen, Pitel, ZrenBot, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, mart