f26f23de50
better alt-tabbing. better transient handling. i dont even know. lots of fucking cool shit so WATCH the FUCK OUT.
27 lines
1.4 KiB
Text
27 lines
1.4 KiB
Text
Woop, a HACKING document for openbox at last!
|
|
|
|
dirs:
|
|
kernel - core of the WM
|
|
render - librender, rendering routines for the WM and for apps
|
|
cwmcc - client-wm-client communication. netwm/icccm helper routines
|
|
for the WM and apps
|
|
obcf - openbox config format, generic parser for config files
|
|
plugins - various plugins
|
|
|
|
Beware the Client.transient_for. It can be set to a !NULL value of TRAN_GROUP,
|
|
which is not a valid pointer. You must ALWAYS check for TRAN_GROUP before
|
|
following transient_for. When TRAN_GROUP is found, Client.group will always
|
|
be !NULL. Some smart action should be taken using all members of the group in
|
|
this case.
|
|
Smart action idea:
|
|
Skip over members of the group that are also transients of the group
|
|
(have Client.transient_for set to TRAN_GROUP). These windows are not
|
|
ancestors and using them will also end up causing infinite loops!
|
|
|
|
When using coordinates/sizes of windows, make sure you use the right area. The
|
|
Client.area rect is the reference point and size of the *CLIENT* window. This
|
|
value is not what you see in any shape or form, and gravity is applied to it to
|
|
translate it into what you see. The Client.frame.area is the actual position
|
|
and size of the entire frame. This is usually the value you want to use, unless
|
|
you are in client.c (probably) and adjusting/using the position or size from
|
|
the client's perspective.
|