New in v0.52:
=============
Bug Fixes:
----------
 A line that used to read 
  ... malloc(strlen(...));
now reads
  ... malloc(strlen(...)+1);

(OOPS!)
Now say it 1000 times Rob:
"Thou shalt not forget to malloc one extra for the null."
"Thou shalt not forget to malloc one extra for the null."
..........
*sigh* I really should have used strdup() instead; this never would
have happened.  

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

New in v0.51:
=============
Bug Fixes:
----------
stph no longer requires the WIN_CLIENT_LIST property to be present in
order to initialise.  (Sawfish apparently does not create this property
until it adopts its first window, which is fair enough.)  

[WIN_PROTOCOLS must contain WIN_CLIENT_LIST however, as stph still
requires this property to obtain the client list.]

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

New in v0.5:
============

Taskbar Enhancements:
---------------------
Clicking a button now raises the corresponding window in addition to
giving it the focus.

User-specified xpm files still can be specified as icons for
applications; but if there is no match for one of those, and the
application specifies an icon of some sort, that is used; else, a
default icon like the one in the gnome tasklist is used.  

API Changes:
------------
Several functions have changed to returning int instead of void,
nonzero indicating an error.  stph_close_task() used to return nonzero
on success but now it's nonzero on failure; sorry.  Nice to have it
uniform though.  

A new function, stph_raise_task_window() has been added.  (That's
taskobject.raise_window() in the Python bindings.)  

Icons are now supported.  There are currently 3 ways an app can set an
icon; stph supports all 3.  struct StphTask (or stph taskobjects in
Python) now has new members corresponding to each of these:
 - `icon_pixmap' and `icon_mask'
 - `icon_window'
 - `kwm_icon_pixmap' and `kwm_icon_mask'
Each of these are xid's of the referred-to drawables.  To keep track
of these changing, there are 3 new callbacks -- respectively,
 - STPH_TASK_ICON_PIXMAP_CB
 - STPH_TASK_ICON_WINDOW_CB
 - STPH_TASK_KWM_ICON_CB
Of course, xid's are not very useful by themselves, so for convenience
there are new files `stph_icons.c' and `stph_icons.h' in the
distribution, whose functionality is incorporated in the Python
module.  These allow you to get the icons as xpm data, resized to your
preferred dimensions.  See stph_icons.h and timbar.py for details and
usage.  [Note that there are more efficient (but probably not as
convenient) ways of copying drawables into pixmaps if you're using C.
However this is probably not a big issue given the application.]

Bug Fixes:
----------
Found some more places where X Errors may be generated; dealt with
them.  

Removed a lot of spurious calls to stph_mainiteration().  It's now
only ever called when you call it.  

Made static a bunch of functions that should have been so from the
start.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

New in v0.4:
============

Bug Fixes:
----------

X Errors are now caught so that they don't crash stph.  They are
either dealt with or, if unexpected, reported to stderr non-fatally.

Setting focus to a shaded window first unshades it so that it can
actually get the focus.

Convenience functions added:
----------------------------
stph_shade_task(), stph_unshade_task(), stph_shade_task_toggle().

Internal stuff:
---------------
Various changes to unify ICC a la gwmh.  

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

New in v0.3:
============

Taskbar Enhancements:
---------------------

Easy installation with ./configure; make; make install.

Taskbar (now timbar.py) now allows icons to be associated with tasks
based on regexps for class/instance and name.  Icons must be XPM
files. 

Replace-in-name allows some control over what is displayed on a task's
button, eg. replace "Netscape: " with "NS: " to get more useful info
in the space on each button.  

Configuration data is held in ~/.timbarrc; this is a pickled dict
(plain text would be preferable but pickling is too damn convenient
for now).  

Workspace expander buttons are now labelled with the workspace number.

Clock button added; clock format is configurable; configuration
dialogs accessed by clicking the clock button.

Bug fixes:
----------

Race conditions could develop whereby windows disappeared before we
had processed all other events relating to them, resulting in X
errors.  Fixed.  

Task hints were incorrectly referenced to the state structure in
stphmodule, resulting in erroneous values.  Fixed. 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

New in v0.2:
============

Convenience functions added:
---------------------------- 
stph_set_current_desktop(), stph_set_current_area()

Task attributes added:
----------------------
icon_name, class, instance

(Corresponding callbacks added; although class/instance isn't likely
to change usually you may like to express everything in terms of
callbacks)

Bug fixes:
----------
stph_focus_task() now automatically moves to the correct workspace &
viewport before attempting to focus a window; previously it would
attempt the impossible and crash out

fixed a bug whereby the add_task_callback would be called before a
task was stored in its XContext, thereby causing stph_task_from_xwin()
to fail if used in the callback

Misc:
-----
tester.c updated to reflect some of the new features; taskbar.py
updated to be at least potentially usable for real work.  

