]> Dogcows Code - chaz/openbox/blobdiff - HACKING
add (optional) support for showing a busy cursor via startup notification
[chaz/openbox] / HACKING
diff --git a/HACKING b/HACKING
index 6cc4f52f36d8c6074f14545f0954efcd5eb24859..45104201d31c86c516f662e2d4e07e0c7443a2bf 100644 (file)
--- a/HACKING
+++ b/HACKING
@@ -1,7 +1,27 @@
 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.
This page took 0.020267 seconds and 4 git commands to generate.