reorganize tree
minor changes
stop listening for property events on client window after unmap
Fixed a (very) small 'bug' in the usage text, -f wasn't printed on a new line.
refactor, rename
rename, refactor again.
apply patch from richardgv. fixes #5.
add richardgv's patch. see #31.
avoid allocating a new win struct if possible
Bug fix: Issue #38, fixes painting specially-shaped semi-transparent windows

Fix taken from xcompmgr.
Bug fix: Issue #36: Chromium window painting problems

More descriptions on issue #36.

- Listens ShapeNotify event to get around the Chromium window painting
  issues.

- Adds dependency on X Shape extension.

- Adds a few functions for convenience, so a bit code clean up.

- Better event debug support, adds restack_win() debug.
Feature: Issue #35, Add colored shadows

- Use getopt_long() instead of getopt() for argument parsing, making
  long options possible.

- Add support of colored shadows with 3 commandline switches.
Bug fix: Issue #37, fix 5 opacity-related bugs

More details in the bug report.

- Rewritten much of the opacity calculation, code cleanup.

- Commandline switch --inactive_opacity_override to restore the old
  behavior in which inactive_opacity has higher priority than
  _NET_WM_OPACITY.
Bug fix: Segfault when encountering invalid long option

I didn't read the documentation of getopt_long() carefully.
Debug: Enhanced debugging capability

- Change all #if DEBUG_XXX directives to #ifdef, thus making it
  possible to directly enable debugging options with CFLAGS
  (-DDEBUG_XXX).

- Print timestamp before event debugging messages.
Feature: Issue #2: Support dim inactive windows

- Add a switch --inactive-dim that dims inactive windows.

- The window dimming feature is implemented in a pretty ugly way.
  Improve it if possible.
Bug fix: Issue #39: Render windows just mapped && focused incorrectly

More info in the issue description. This also fixes the problem for
--inactive-dim.
Bug fix: Double free when XQueryTree() fails

Take care of failure of XQueryTree() to prevent it from causing a
double-free crash. This usually happens when X is initializing and windows
are constantly changing.
Bug fix: Issue #40: -z does not work as expected

More information in the issue report.

- Let window opacity affect the opacity of its shadow and frames even if
  -z is enabled.

- Check for the range of -o to eliminate potential segfault.
Improvement: Do not track focus changes unless necessary

Stop tracking focus changes unless either inactive_opacity or
inactive_dim is enabled, small performance boost in certain cases.