X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=HACKING;h=afd84869fb4c145d24f50d52e6a1b5ede848018b;hb=185d1337e553283530e23b1edff3bb709f04e9bb;hp=6cc4f52f36d8c6074f14545f0954efcd5eb24859;hpb=91f2c11af0b7012c747aa6fe101e448ea9842034;p=chaz%2Fopenbox diff --git a/HACKING b/HACKING index 6cc4f52f..afd84869 100644 --- a/HACKING +++ b/HACKING @@ -1,7 +1,23 @@ 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. + +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.