Overhaul X11 window types
X11 windows are represented by two classes - X11Window
and Unmanaged
. One represents managed windows and the other represents override-redirect windows.
On one hand, the split makes sense, but on the other hand, such fragmentation is undesired. For example, when associating X11 windows with wl_surface; or creating platform specific items.
As an undesired sideeffect, the Window
class is used to share code between X11Window
and Unmanaged
.
In principle, override redirect windows can be represented by X11Window
. The main difference between OR and managed windows from kwin's perspective is that some operations are forbidden for OR windows.
I think that it's worth overhauling X11 window types:
- merge
X11Window
andUnmanaged
- move X11-specific code from
Window
toX11Window
- unify X11 apis in
Workspace
, e.g.Workspace::findClient()
andWorkspace::findUnmanaged()
,Workspace::clientList()
andWorkspace::unmanagedList()
, and so on