I'm currently developing a simple window manager in C++ using Xlib. I've implemented a basic master/stack tiling algorithm, and what I've noticed is that whenever I open a "complex" app (such as midori, or even thunar) with a lot of "popup" dialogs that are a separate window (such as the mini window that opens when you hover on a disk in thunar), they also get inevitable tiled.
While I've tried reading the EWMH and ICCCM docs, I'm not exactly sure which rules and properties I should implement first, to get these types of apps working.
So kindly tell me the bare minimum I should I implement.
You have to keep an eye out for these three important attributes and properties:
For example, the _NET_WM_WINDOW_TYPE_DIALOG
section states:
If _NET_WM_WINDOW_TYPE is not set, then managed windows with WM_TRANSIENT_FOR set MUST be taken as this type. Override-redirect windows with WM_TRANSIENT_FOR, but without _NET_WM_WINDOW_TYPE must be taken as _NET_WM_WINDOW_TYPE_NORMAL.
More Infos: