Remove Unmanaged and Deleted classes
Instead of having separate child classes of Toplevel for Unmanaged and Deleted interpret unmanaged X11 windows as Toplevels without control()
and a Deleted as a Toplevel with remnant()
being set. For that:
- Toplevel is not an abstract class anymore.
- Unmanaged functionality is moved either to Toplevel or to the new
win::x11
namespace - Deleted functionality is moved to class
win::remnant
. - For now we check on previous Deleted overrides if
remnant()
is set and then access its data. Long-term it might be possible to further simplify this.
With this change we substantially bring us closer to accomplishing our objective of flattening the windows hierarchy as defined in #75 (closed).
Edited by Roman Gilg