1.0.16 (6 Feb)

  * Remove key grab for escape key when we weren't using it.
  * Small focus issue change.
  * Fixed a function in windowmanager.cc which wasn't deallocating memory after it was used.

1.0.16-RC3 (2 Feb 2002)

  * Fixed problem with reverting focus under sloppy focus. 
  * Merged in a patch from David Lawrence Ramsey which contains the manual page
    formatting fix, the new icon and rcfile change for appbar, the typo fix for
    setrootimage. Also added more support for NET_WM hints in fspanel, aewm++
    has also been updated to add support for this. This changed involved hints
    for virtual desktops. Also in this patch is a minor change to 
    windowmanager.cc where I accidentally left some code over when NET_WM hints
    were configurable.
  * Added a disclaimer to the README of fspanel so that it states that it is
    not the official version but an updated version with changes by me and 
    others involved with this project.
    
1.0.16-RC2 (28 Jan 2002)

  * Fixed a focus problem when reverting to a previously focused client (ie.
    when you close a client it reverts focus to the next client in the stacking 
    order).
  * Made a small change in appearance of unfocused windows. The line which 
    separates the small box in the right corner is not painted. Its only painted 
    on a focused window now.
  * Changed back the code which initially maps a window. I though withdrawn 
    windows shouldn't be mapped. I think I am confused =) Withdrawn windows 
    will now be mapped initially.
  * Changed default focus model to sloppy.
  * Got rid of -arch=686 in appbar's and setrootimages Makefiles.

1.0.16-RC1 (26 Jan 2002)

  * Added in David Lawrence Ramsey's hyperbolic gradient patch. This is added
    to appbar and to setrootimage.

1.0.16-pre11 (20 Jan 2002)

  * Changed the fork function in misc.cc to check the length of the
    command to execute if its zero length then obviously don't fork 
    anything.
  * Hopefully squashed the bug which would cause aewm++ to lock up.
  * Badly needed updates to the manpage.
  * There are only 2 command line options to execute commands via button clicks
    they are -new1 and -new2 which coorespond to the left and right mouse buttons
    respectively. This is the best compromise I can come up with and still have
    the middle button pop up the icon menu.
  * Fixed -fn option. The user select font was not being used for unfocused
    windows.

1.0.16-pre10 (18 Jan 2002)

  * Fixes to LinkedListIterator
  * Iconifying clients with transients will correctly iconify all transients
    and vice versa.
  * Minor updates to appbar so that it disables always on top hint and strut
    when hidden.

1.0.16-pre9 (15 Jan 2002)

  * Merged in David Lawrence Ramsey's patch which fixes typos in the man page,
    Changelog and in windowmanager.cc.
  * Code cleanup, got rid of DEBUG code. It was hardly ever used anyway.
  * Clean up in client move code.
  * Window manager keeps track of the command line which started the window manager
    upon restart the same command line is used.
	
1.0.16-pre8 (13 Jan 2002)

  * More work on focus issues. Should be just about right now!
  * -fm click|sloppy|follow are the commandline options for focus model.

1.0.16-pre7 (12 Jan 2002)

  * Updated the commandline option -usage.
  * More clean ups in windowmanager.cc.

1.0.16-pre6 (12 Jan 2002)

  * Merged in David Lawrence Ramsey's focus policy patch. Seems pretty
    close to the code in pre5 however we will go with his.
  * Fixed problem with focus when switching desktops with the key combos.

1.0.16-pre5 (3 Jan 2002)

  * Initial support for sloppy focus and click to focus and configurable
    from the command line.

1.0.16-pre4 (31 Dec 2001)
 
  * Initial configuration handlers for sloppy focus, click to focus and
    focus follows mouse added but commented out.
  * Added LOOKING_FOR_HELP file which describes that this project is
    in need of help it provides contact information.

1.0.16-pre3 (29 Dec 2001)

  * Added a patch which changes the fspanel to have buttons for virtual
    desktops instead of arrows. I can't remember who sent me this patch. If
    it was you email me so I can give you credit.

1.0.16-pre2 (29 Dec 2001)
 
  * Updates to setrootimage in goodies subdirectory. It now takes advantage
    of all of the style options provided by the blackbox image code.

1.0.16-pre1 (29 Dec 2001)

  * Got rid of compile time option NET, the extended hints are compiled
    in automatically. There is no reason not to have them as they don't
    rely on any external libs or anything.
  * Some clean up in client.cc.
  * Clean ups in man page.

1.0.15 (28 Dec 2001)

  * Changing code which deals with window positioning and size. Trying to fix 
    the bugs I introduced in earlier versions.
  * Fixed setting of the NET_WM_STATE property.
  * Clients now look for NET_WM_STATE when they are created and will set
    states appropriately.

1.0.15-pre2 (23 Dec 2001)

  * Changes to configure event handler and unmap handler and also
    strut positioning.

1.0.15-pre1 (22 Dec 2001)
  
  * MJ Ray's patches.

1.0.14 (8 Dec 2001)

  * Changes in configure event handler of client.cc fixing up a few
    issues dealing with width and position.
  * More changes to init_position in client.cc, trying to make 
    it more aware of apps that set struts when windows are initially
    positioned.
  * Added key combo ctrl-alt-end to exit the window manager.
  * Added key combo ctrl-alt-delete to restart.
  * Set appbars position and size (XSizeHints).
  * Looks like I fixed the scan_wins problem. (time will tell)
  * Made transients not able to use the window menu. 
  * Added an xsession directory to goodies, put xsession.c in it and added
    a README file explaining its usage and how to compile it and install it.
  * Update INSTALL file.
  * Added GenericMenu class, its purpose is to provide common functionality
    used in both the iconmenu and the windowmenu. 
  * Changes to Makefile.
  * Fixed bug which caused some windows to stick around when closing
    aewm++ and starting another window manager.
  * Tweaked the struts for goodies/fspanel.
  * Added xsession.c from aewm/goodies to the goodies directory.
  * Code clean up in client.hh and client.cc.
  * Don't allow reparented transients to iconify themselves from the titlebar.
    I was disallowing this from the iconify function which was wrong because
    we still want to be able to iconify transients sometimes for instance if
    xmms is iconified we want its playlist or equalizer to iconify with it. 
  * Added support for clients checking what desktop they want to start on. 
    Thanks to Jeremy Naylor.
  * Changed invert_gc back to use GXinvert instead of GXxor, seems this
    wouldn't work on some versions of X but worked with 4.1. Go figure!
  * Small fix so that frame doesn't propagate some masks.
  * Put the titlebar in its own window, now aterm's transparency works.
    Probably other apps which use transparency work as well? Time will tell.
  * Fixed a couple header problems with goodies/appbar and goodies/setrootimage
  * Clean up in BaseMenu
  * Moved iconify to button press code instead of button release in client.cc
  * Fixed the buggy icon menu that I released yesterday (damn!).
  * Small fix in linkedlist.cc, I was using the function exit() but 
    forgot to put #include <stdlib.h>. I am still wondering how gcc 2.95.3
    fails to recognize this as an error.

1.0.13 (11 Nov 2001)
	
  * man page updates
  * README updates
  * A little clean up in the makefile
  * Added icon menu
  * Fixed a bug which caused a crash when an app called worker was closed
  * Fixed the KeyPressMask problem that globally grabbed the
    page up and page down keys
  * Fixed a few things which prevented it compiling cleanly with gcc 3.x
    It has a more strict C++ standard than gcc 2.95.3 which I use

1.0.12 (6 Nov 2001)

  * Code cleanup in basemenu
  * Initial window placement is now strut concious
  * Added appbar to goodies directory.
  * Added my patched fspanel to goodies directory.
  * Fix for slightly broken opaque move, window would jump slightly off on the
    y axis when grabbed for the first time. This was due to a change in send_config.
  * Fixed an annoyance which caused some windows to be movable, maximizable,etc
    from anywhere on them clicking/double clicking.
  * Fix a typo in aewm.hh and Makefile involving setenv. 

1.0.11 (3 Nov 2001)

  * made it so transients can't be iconified.
  * fixed up _NET_WORKAREA to take into account _NET_WM_STRUT that have 
    been set by clients.
  * made it so that transient windows can't be maximized. I haven't
    encountered a time yet when I needed to maximize one. =)
  * code clean up in client.hh and client.cc
  * fixed a bug in switching desktops which wouldn't take into account
    if a window was iconified and it set its state to Withdrawn.
  * added _NET_WM_STRUT support.
  * added a setenv() function for those Unix systems that don't have one.
    thanks to Jeremy Naylor for this patch! This is a compile time option.
    Edit the Makefile and uncomment #NEED_SETENV in the DEFINES line.  
  * Fixed bug which involved Gimp starting and looking like it had
    the focus when it really didn't.
  * Tweaked click to raise window.
  * Tweaked the setFocus function.
  * Fixed motion handler to make sure button1 is the only button
    which can drag a window.
  * Small fix on _NET_ACTIVE_WINDOW, it wasn't actually setting the focus.
  * Added support for _NET_NUMBER_OF_DESKTOPS client messages.
  * Added support for _NET_CURRENT_DESKTOP client messages.
  * Added support for _NET_CLOSE_WINDOW client messages.
  * Added support for _NET_WM_DESKTOP client messages.
  * Clean ups in aewm.hh
  * added -es option for edge snapping. Used -es [true|false].
    default is true.
  * Updates to the man page
  * Started adding support for net wm spec.
  * Reworked client move code. Added opaque move.
  * Added -wm (wire move) option for commandline.
  * Linked List clean ups.
  * Added check to maximize function so that clients don't get maximized
    past their max size if they set this property.
  * Added edge snapping, if a window is within 10 pixels of the edge it
    is snapped to the edge.    
  * Tweaked client raise on click.

1.0.11-pre9 (2 Nov 2001)

  * made it so transients can't be iconified.
  * fixed up _NET_WORKAREA to take into account _NET_WM_STRUT that have 
    been set by clients.

1.0.11-pre8 (1 Nov 2001)

  * made it so that transient windows can't be maximized. I haven't
    encountered a time yet when I needed to maximize one. =)
  * code clean up in client.hh and client.cc
  
1.0.11-pre7 (31 Oct 2001)

  * fixed a bug in switching desktops which wouldn't take into account
    if a window was iconified and it set its state to Withdrawn.

1.0.11-pre6 (30 Oct 2001)

  * added _NET_WM_STRUT support.
  * added a setenv() function for those Unix systems that don't have one.
    thanks to Jeremy Naylor for this patch! This is a compile time option.
    Edit the Makefile and uncomment #NEED_SETENV in the DEFINES line.  
    
1.0.11-pre5 (28 Oct 2001)
 
  * Fixed bug which involved Gimp starting and looking like it had
    the focus when it really didn't.
  * Tweaked click to raise window.
  * Tweaked the setFocus function.

1.0.11-pre4 (23 Oct 2001)

  * Fixed motion handler to make sure button1 is the only button
    which can drag a window.
  * Small fix on _NET_ACTIVE_WINDOW, it wasn't actually setting the focus.

1.0.11-pre3 (22 Oct 2001)

  * Added support for _NET_NUMBER_OF_DESKTOPS client messages.
  * Added support for _NET_CURRENT_DESKTOP client messages.
  * Added support for _NET_CLOSE_WINDOW client messages.
  * Added support for _NET_WM_DESKTOP client messages.

1.0.11-pre2 (21 Oct 2001)

  * Clean ups in aewm.hh
  * added -es option for edge snapping. Used -es [true|false].
    default is true.
  * Updates to the man page

1.0.11-pre1 (14 Oct 2001 - 20 Oct 2001)

  * Started adding support for net wm spec.
  * Reworked client move code. Added opaque move.
  * Added -wm (wire move) option for commandline.
  * Linked List clean ups.
  * Added check to maximize function so that clients don't get maximized
    past their max size if they set this property.
  * Added edge snapping, if a window is within 10 pixels of the edge it
    is snapped to the edge.    
  * Tweaked client raise on click.

1.0.10 (Oct 13, 2001)

  * ICCCM fixes for setting focus on a client.
  * Code clean up in client.hh and client.cc
  * Got rid of compile time option of Motif hints. There was no real reason
    to have this as an option because it doesn't involve any external libs,
    and is simply checking Atoms on the X Server.    
  * Fixed self inflicted bug which ignored windows which were already mapped
    when aewm++ started, this would cause servere problems and make the wm
    hang.

1.0.9: (Oct 11, 2001)
 
  * Small change in quit function in windowmanager.cc involving clearing
    of the client list.
  * Fixes in window state and mapping functionality.
  * Added a new goodies directory. Added a small app which lets you
    set your root background to a nice gradient.

1.0.8: (Oct 9, 2001)

 * updates to the README file.
 * Implemented always on top windows via the GNOME hint WIN_HINTS_DO_NOT_COVER.
 * The previous bug fix for the xpdf bug wasn't the correct fix. It wasn't
   getting the correct width and height so I had to call XGetGeometry to fix
   this. 
 * Small bug in windowmanager.cc in the configure request handler. It
   didn't cause any errors that I saw but there was a small error in the code.

1.0.7: (Oct 7, 2001)
 
 * Added text justify option to commandline -tj pass it left, center or right
   to justify the window title in the titlebar.
 * Fixed window stacking order preservation when switching virtual desktops.
 * Did some code clean up in client.cc
 * The goodies which were part of aewm have been removed. If you want them
   download aewm.
 * Fixed the xpdf bug which caused it to not get reparented.
 * Makefile updates.
 * Tweaks to the mouse button handling.
 * Small bug in edge detection for menu's which caused the menu to 
   be displayed with a (y) position which would put it out of range
   of being viewed. This manifested if you have a window low on the screen
   and tried to view its window menu.
 * A Window Menu has been added to allow for switching clients to different
   desktops. Also you can maximize/restore, shade/unshade, lower or close.

   (ISSUES: fspanel doesn't know when a window has changed desktops,
   I had to patch it to make it update the task list. I'll make that
   available soon.)
 
1.0.6: (July 28, 2001)

 * Fixed bug that made Xnest cause a BadAccess when trying to load it.
 * Added partial support for GNOME hints. Enough to get it working with
   fspanel. 
 * Some code cleanups for virtual desktops.
 * Windows get raised after they are unshaded.
 * Fixed unmap bug which creeped up again. MJR's solution was indeed correct.
   this wasn't immediately obvious. You could see the bug if you used fspanel.
   some windows were being unmapped however they didn't need to be managed anymore
   and should have been deleted. This would manifest as extra tasks on the fspanel.
 * Clients with transients like xmms will unmap there transients when unmapped. (needs more testing)
 * You can click anywhere on a client to raise it.

1.0.5: (July 27, 2001)

 * Virtual Desktops
 * Focus highlight color - Window with focus has a different color from unfocused.
 * Added -md (max desktops) option to command line.
 * Added maximize and unmaximize functionality to clients by double clicking
	on titlebar.
 * Added shade and unshade functionality to clients by middle clicking on
 	titlebar.

1.0.4: (July 22, 2001)
	
 * unmap bug fix.
 * a few small minor changes.
 
1.0.3: (C++ version by Frank Hale)

 * Converted aewm-1.0.3 to C++. All regular functionality is still
   the same as the C version.

-- aewm (C version Changelog below) --

1.0.3:

 * Backport new init_position, -version option, new man pages, and
   panel-misc.c crasher/overflow fixes.

1.0.2:

 * Backport -lXt fix and new documentation.

1.0.1:

 * Fix remove_client so that it compiles with -DDEBUG turned on.

1.0.0:

 * All right, I think we're stable now. New stuff will go into 1.1.x.
 * Changed init_position so that it doesn't cut off very large
   windows. This was merely annoying for regular windows, but it was
   downright buggy for incsized ones.
 * Fixed compilation bug when shape support was disabled.

0.9.19:

 * OK, I broke command line parsing again. Yes, I'm an idiot.
 * Fixed problem with exec()-ing a non-existent program.

0.9.18:

 * Fixed bug in init_position; we can safely use PPosition now. If
   windows start popping up in bad places, check their size hints
   before yelling at me.
 * Use fork/exec instead of system(3) to run programs. Fixed signal
   handlers to reflect this (we need POSIX sigaction(2)).
 * Cleaned up MWM hints/WM_SIZE hints code (they sort of match now),
   and only request the MWM atom at startup instead of for each call.
 * Started yet another goodies reorganization, and ended up reverting
   a lot of it. However what's changed should go a little ways towards
   cleaning things up.
 * Fix a build error where some goodies files that needed to be
   compiled against X were compiled without -I/use/X11R6/lib, failing
   on systems without a symlink from /usr/include/X11.
 * Tossed out historical 'iheight' junk in border calculation.

0.9.17:

 * Use ln -f to ignore overwriting previously installed manpage links.
 * If MWM hints are enabled, no-border windows will no longer
   get a border upon exiting.
 * The order of buttons in *-palette is no longer changed by title
   updates or unhiding windows.
 * xaw-palette was fixed to work with proper versions of Xaw (shame on
   me for testing with Xaw3d!), including the one in XF4. The new
   internals have ported over to gtk-palette.

0.9.16:

 * Fixed a shaping bug (which actually existed before changes made in
   0.9.15) where a window that used to be shaped, but then became
   unshaped, wasn't updated properly.
 * MWM hints support can now be compiled in with -DMWM_HINTS, thanks
   to help from Adam Sampson <azz@gnu.org>.
 * Set the input focus upon entering a window frame, instead of on
   entering the child window.

0.9.15:

 * Display a titlebar for shaped windows. This also makes the bug
   where shaped windows were getting gravitated as if they had a
   titlebar irrelevant.
 * Tiny cleanups for the Debian package, including:
 * Man page for the goodies.
 * Typo in makefile fixed (tried to strip manpage, ah-reer-reer-reer).
 * Polished the main man page a bit.

0.9.14:

 * Free cursors and GCs in quit_nicely.
 * Switch order of objects and libraries in Makefile to placate
   Solaris cc.
 * Rename raise to raise_win -- raise is in signal.h of course (duh!)
 * Added copyright notice to all goodies and Makefiles due to someone
   ignoring my license (this has been worked out).
 * Bail out on lack of default font. You *should* be reading aewm.h
   first of course ;-)

0.9.13:

 * Fix really stupid thing I did while refactoring make_new_client,
   where a window that started as Withdrawn would stay that way
   instead of getting mapped.
 * Deal with withdrawing clients properly in *-palette, by watching
   for the WM_STATE property to be changed instead of looking at
   UnmapNotify events.

0.9.12:

 * Clean up clients on receipt of a DestroyNotify. This is needed when
   a client is already unmapped (i.e, the user iconified it) and it
   exits.
 * Preserve window stacking order on exit and restart.
 * Mucked about with the make_new_client logic; tell me if this breaks
   something.
 * Added gtk-*-menu clients contributed by Adam Sampson <azz@gnu.org>.

0.9.11:

 * Got rid of unneeded PropertyChangeMask on root window. Silly me.
 * Removed the ugly array/linked-list hack from xaw-palette, so that
   the internal workings of both palette clients are now basically
   identical.
 * static'd everything that should have been static.
 * Updated email, documentation, etc.
 * Got rid of handle_reparent_event, as a client call to
   XReparentWindow is taken care of by handle_unmap_event.
 * Backed out the 0.9.9 change to option-parsing macros, which
   were causing all options to fail miserably (argh).

0.9.10:

 * Handle withdrawing windows properly in xaw-palette. Both palette
   clients are a little saner now.
 * Updated goodies docs.
 * ungravitate when printing geometry for move/resize.
 * Moved more code from individual goodies to common-run.c.
 * Got rid of unhide() as we never use it.
 * Replaced GenericWidget typedef silliness with global variables.
   sometimes you just have to pick the lesser of two evils...

0.9.9:

 * Finally de-insanified handle_xerror. Instead of going through
   contortions in remove_client to avoid raising errors, we turn the
   error handler off during the server grab.
 * Both palette goodies now track iconification of clients and WM_NAME
   changes.
 * gtk-palette is now oriented horizontally, and includes a menu,
   providing lots more space for client buttons.
 * Made the parse_option macros reusable (thanks to the comp.lang.c
   folks for the reminder).
 * make sure get_wm_name in the goodies doesn't crash for windows that
   have no name.
 * Minor typo corrections and stuff.

0.9.8:

 * Brown paper bag: take debugging stupidity out of gtk-palette.
 * Overhaul the goodies' build system yet again.
 * Gtk-palette now gets the screen size correctly.
 * All switch/palette goodies now cut off long titles, use WM_NAME
   instead of WM_ICON_NAME, and place iconified titles in parenthesis.
 * No changes to aewm itself in this release.

0.9.7:

 * Added lots of comments.
 * General code cleanups, tweaks, reformats all over.
 * Fixed iconic state problem.
 * Plugged a memory leak in send_wm_delete.
 * Added -new3.
 * Fixed -new[123] allocation bug.
 * Made debug code considerably saner.
 * Print "80x25" and such when resizing xterms.
 * Replaced sprintf with snprintf.
 * Got rid of -display. set DISPLAY in your environment instead, so
   that it propagates to child processes.
 * Messed around with the goodies' build system.
 * Fixed gtk-palette; events are now filtered properly at the GDK
   level.
 * Replaced variable length arrays with malloc/free.
 * Added xsession, since I've been using it forever.

0.9.6:

 * Fix for handling inital window geometry.
 * A few memory leaks plugged.
 * Wrote a man page
 * More consistent borders for transient windows.

0.9.5:

 * Print window geometry while moving/resizing.
 * Added some WM_NORMAL_HINTS sanity checks
 * Set the keyboard focus on window enter (for rxvt, etc).

0.9.4:

 * Root menu replaced by another client.
 * Added -bw option.
 * Border-drawing fixes (only visible if you have very wide borders).
 * Got rid of mouse button exit.

0.9.3:

 * Put the root menu code back in.
 * Added more goodies and reorganized them.

0.9.2:

 * Minor ICCCM compliance fix regarding WM_STATE.

0.9.1:

 * A small fix to make the palette complain if no rc file exists.

0.9:

 * Initial public release. Before this, aewm was called 'swim' and was
   used by me as a school project. It was also rather unstable.
