graesslin added a comment.
In https://phabricator.kde.org/D7096#137461, @davidedmundson wrote: > under X, any other process can change _net_active_window No! Other processes are not allowed to change _net_active_window, see https://specifications.freedesktop.org/wm-spec/wm-spec-latest.html#idm140200472702304 Important quote: "This is a read-only property set by the Window Manager." > If that happens we need our m_activeWindow to reflect that, otherwise kwin can be out of sync and not send anything. KWin does not detect if a client changes the property directly. Didn't before. If that ever happened it went out of sync. Similar for any other Window Manager property (c.f. events.cpp, search for rootInfo()->event). We don't read them back. I do not see any reason to adjust this. > NetRootInfo already contains an activeWindow() method, which seems up-to-date, can we use that instead of the member var? No, we cannot. The setActiveWindow method does not store the value. So once you call setActiveWindow, activeWindow has a wrong value till one received the property change and passes it to the NetRootInfo. So no, it's not up-to-date. REPOSITORY R108 KWin REVISION DETAIL https://phabricator.kde.org/D7096 To: graesslin, #kwin, #plasma, davidedmundson Cc: davidedmundson, plasma-devel, kwin, ZrenBot, progwolff, lesliezhai, ali-mohamed, hardening, jensreuterberg, abetts, sebas, apol, mart, lukas