0.1.2:
	take into account the action with NET_WM_STATE messages for NET_WM_STATE_ABOVE and NET_WM_STATE_BELOW
	added comment about why we focus NULL on FocusOut events in events.c
	initialize screen member of clients propperly, fixes potential segfaulting when a window is initially maximized/fullscreen
	fixed filtering ConfigureNotify events for debugging output (would catch a lot of events it schouldn't catch)
	send extra ConfigureNotify when updating size (jedit needs this)
	corrected debugging message for FocusIn events on root windows
	respect ICCCM input hints
	added support for WM_TAKE_FOCUS protocol - fixes focussing jedit and probally a lot of other (java and perhaps non-java) applications
	check if the pointer just dropped into another window on client_focus_first
	ignore FocusIn on root window - FocusOut with NotifyAncestor detail will do instead
	**pre1 release
	return instead of break on receiving MapNotify
	use X11 client messages instead of pipe
	updated manual about lesser required system calls + small correction
	di no longer only declared it when USE_SHAPE is defined, we use it too otherwise
	added --cflags --ldflags --libs and --force-* flags to configure script so you can specify compiler and linker flags manually
	print the names of libraries the way they are passed to pkg-config in configure script
	moved unset stuff down in configurescript for better structure
	don't print usage on invalid argument
	a lot of small changes like ${opt} instead of $opt etc in configure script
	configure script listens to CFLAGS, DEFINES, LDFLAGS and LIBS environment variables
	initialize CFLAGS, LDFLAGS and LIBS with = instead of += in Makefile
	updated README about command line arguments required to configure for minix
	added dot after last sentence of README
	configure script now tries to choose compiler and linker flags itself if pkg-config can't, and has --disable-pkg-conf option now
	added quit key action
	**pre2 release
	fixed client_save for windows above current screen
	added segin's fullscreen and maximize button patches
	NET_WM_STATE_ADD -REMOVE and -TOGGLE no longer defined twice (had then in atoms list while they're not atoms)

0.1.1:
	fixed expanding while window maximised/fullscreen
	strip whitespace from cflags etc in configure script
	fixed buttons_create(), calls buttons_update() after calculating button parent sizes and doesn't map the button parents (buttons_update() schould do that)
	don't set HAS_BUTTONS in client_add(), this is up to buttons_update()
	fixed windows without WM_NORMAL_HINTS property behaving inapropriately
	s/print all events/debugging output about events/g in -version output
	makedefcfg.pl handles double quotes and backslashes propperly now (it escapes them)
	act variable defined at top of str_action() instead of in the middle somewhere, len variable used there instead of calling strlen() twice
	added correct_center_separate option to select wheter to correct x and y axis separately or not (defaults to false)
	corrected calculation of min and max vertical cordinates in screens_correct_center()
	moved declaration of act to the top of str_action() in config.c

0.1.0:
	wrapped all screen dimensions stuff, so multiple screens can be used
	initial xinerama support
	don't calculate workarea dimensions 4 times to set them 4 times in ewmh.c
	removed a few misplaced tabs from configure script
	first argument of expand() is now bool instead of int
	event handlers return bool instead of int
	update window list before mapping it
	added drag_warp option to disable warping desktops while dragging
	boolean options in config.c now use bool datatype too
	don't strut _KDE_NET_WM_WINDOW_TYPE_OVERRIDE windows
	ewmh_initialize() split up in ewmh_initialize() and ewmh_update()
	update windows when strutting changes
	remove frame around fullscreen windows so fullscreen doesn't look odd with xinerama setups
	client_expand()'s a argument is now bool instead of int
	allow overrideredirect windows to take focus
	use error() for pipe() errors too
	follow focus where application try to set it
	added allow_focus_stealing option (setting it false makes focus policy more strict, like it used to be)
	set input focus to None while in window list modus
	added comment about _NET_WM_STRUT_PARTIAL not being fully supported to BUGS
	ewmh_screen option to set where the desktop windows and such go on xinerama setups
	updated README and manual page about new features
	**pre1 release
	more generic explanation about the compile time options being printed at -defaults in the manual
	type casting in DEBUG_EVENTS printf statements
	client_visible() is now bool and returns false if called with NULL argument
	moved a few includes that are only needed by one or two files from matwm.h to the files that need them, and added comments on why they are necessary
	removed a few includes that are no longer necessary
	added comment about why there is an include in evn.c and one about why we set input focus to the root window in quit()
	corrected version number of this changelog entry
	raise override_redirect windows on startup
	check if any window we don't manage is focussed before focussing a new window because no other current window is there (when focus_new is disabled)
	corrected intendation of Makefile a little
	added --enable-debug flag for configure script
	configure scripts says what libraries are needed for
	action codes are typed unsigned char now
	use action codes for drag modes
	use pointers for events
	call wlist_handle_event() and not handle_event() in wlist_start
	don't allocate memory to grab a key without valid key action
	key actions and mouse button actions are now the same thing (and this fixes double5 setting not working)
	added options to assign button actions for the root window
	reworked potentionally disfunctional code for handling (double) clicks
	don't return true on every configurenotify event in screens_handle_event
	corrected intendation in button_handle_event
	make sure client_visbile() returns either true or false
	preserve stacking with client_iconify_all()
	keep override_redirect windows on top
	check if next and prev keys have at least one modifier
	added correct_center option, wich places windows that go in the center of the root window to the center of the current screen
	added click_root option to enable/disable selecting ButtonPressMask on the root window
	changed default configuration (set focus_new and map_center to true, and double2 to expand)
	update the manual page above all(i hope) above changes, and made a small correction
	nicer printing of X errors and -DDEBUG_EVENTS stuff
	moved client_warp() and client_focus_first() to actions.c and client_over_fullscreen() to client.c
	removed trailing new lines from a lot of files
	**pre2 release
	str_opcode() returns "unknown" instead of "unknown opcode" if opcode isn't known
	propperly free xinerama's screen info when we no longer need it
	don't wait before exiting if we can't select events on the root window
	select events on the root window again when reloading the configuration file
	new error message for not being able to select events on the root window
	clients_alloc() no longer pointlessly returns true nor is the result used
	moved some stuff from ewmh_initialize() to ewmh_update()
	repaired dumbness that would result in segmentation fault on linux (allocating not enough memory for screens)
	make very sure there is at least one screen
	use exit instead of return in configure script (return doesn't work with linux sh it appears), also removed trailing newline
	expand now also takes outer edges of screens into account (useful if you have overlapping monitors)
	rewrote snap to edge stuff, and also made it snap to outer edges of screens
	**pre3 release
	don't listen to FocusOut events with detail NotifyInferior, this fixes focussing opera
	do XSetBorderwidth() in client_update(), fixes fullscreen mode (the border would remain around the window and the window would be misplaced)
	don't substract border width and title height for fullscreen cordinates anymore (they are zero anyway)
	focus windows before processing click action on them (fixes trying to drag not-focussed windows)
	corrected README s/ppc/32-bit PowerPC/
	added correct_center_all option wich enables correct_center but for override_redirect windows
	fixed client_save() and made it obey map_center too
	call client_save() in client_add()
	added some printf statements for -DDEBUG
	**pre4 release
	corrected debugging message about adding client
	added some debugging messages, improved old debugging messages
	don't do the focus_new thing when adding existing clients on startup
	try to preserve input focus on startup
	more comments in main.c, and around things concerning input focus
	client_focus_first() checks if the pointer is in a window of ours first, checks if previous is visible and can be focussed
	don't handle NotifyPointer events normally, just set input focus the right way when it goes to the root window
	don't listen to EnterNotify events generated because of grabbing/ungrabbing
	set border width only right before reparenting a window
	choose events for parent window and button windows etc separately
	don't report focus changes with -DDEBUG
	replaced some spaces by tabs in ewmh.h
	configure script prints error on invalid argument, and returns 0 instead of 1 on --help or -h
	configure script accepts --mandir instead of --maprefix (this apears to be the convention)
	--enable-debug intended correctly in configure script usage message
	removed taskbar plan from TODO - doesn't belong there it will be a separate project
	removed matwm-remote plan from TODO - currently seems like a dumb idea, might reconsider this in future

0.0.99:
	using pid_t instead of int for pid in spawn()
	passing a propper adress to wait() instead of NULL in spawn()
	grouped declaration of int's in main()
	changed act variable in sighandler to char datatype
	sighandler now waits for zombie processes so we don't need to fork twice in spawn()
	huh wth @ all tabs in matwm.h replaced with spaces, fixed this
	send an extra configurenotify event when mapping windows - fixes gtk gvim
	changed format of -version output, added info about wheter compiled to use vfork and debugging stuff
	changed comments in makefile: "shaped windows support" instead of "shape support"
	separate prefix for freetype2 and comments about what different prefixes are for
	introduced configure script to generate makefile
	**pre1 release
	rewrote README, wrapped lines in the LICENCE file at 80 columns
	fixed placemend of exec commands and exec key action in man page
	a lot of improvements to the new configure script
	**pre2 release
	updated ChangeLog about releasing pre1 and pre2
	small correction to README (suggestion to read man page before use)
	not using sprintf anymore, as suggested by warning i got while compiling on openbsd
	comment out -W flags in default makefile template (apearantly not all compilers like them)
	fixed a lot of dumbness in error checking
	attempt to quit nicely on malloc errors
	fixed makeheader once again (allow non-word characters so initialization of strings etc can be done)
	format errors like "matwm: error: " instead of "error: "
	only set first to 0 in cfg_parse_defaults
	reordered the giant list of int decrarations in config.c a bit
	initialize nbuttons_left and nbuttons_right, so faulty default config can't fuck up fatally on that
	don't allocate too much memory for mod_ignore
	skip realloc()-ing mod_ignore if not necessary due to bad modifier name
	support for _KDE_NET_WM_WINDOW_TYPE_OVERRIDE window type
	check for multiple window types
	don't quit if malloc()-ing a crapload of memory fails because of an insanely big configuration file
	moved error() to misc.c
	don't free data before exit, this apearantly is not necessary
	removed comment in defcfg.c's generated by makedefcfg.pl
	removed the firefox/seamonkey fullscreening bug from BUGS, it's fixed in newer firefox and seamonkey versions
	propperly check for xinerama extension before trying to use it

0.0.98:
	updated synopsys section of manual page
	SHAPE and XFT -> USE_SHAPE and USE_XFT
	added parenthesis around assertion in client_add()
	fixed bug that would make windows hinted to start iconic being mapped visible
	removed adding comments from TODO, code is readable enough now in my opinion
	Xft support disabled by default
	renamed d argument of client_handle_button() and buttonaction() to is_double
	use true and false for boolean values instead of 1 and 0, also use bool datatype (for wich a typedef and enum statement are added to matwm.h)
	only use map_center behaviour (if enabled) for clients added because of MapRequest events
	use vfork anyway - fuck the plan of making matwm valid ISO C90, it seems to be impossible
	placed defcfg and header targets at the bottom of the makefile
	removed HEADERS from makefile (depending on them doesn't work anyway apearantly)
	fixed title window width calculation wich broke with last release

0.0.97:
	also did intendation for #ifdef stuff
	makeheader.pl now handles #ifdef things too
	use strict and warnings in them perl scrips
	ifdefs around declaration of variables only used by shape extention stuff
	don't put -l flags in $(LDFLAGS) but in $(LIBS) as gentoo patch suggests
	DefaultDepth() and DefaultVisual() no longer used directly everywhere
	also replaced direct use of DefaultColormap() with colormap in config.c
	removed if(c->name) in wlist_item_draw - windows always have names
	only calculate window list item width's once
	removed misplaced tab in default_matwmrc
	added support for Xft fonts
	-version now also prints wheter matwm was compiled with/without shape extention and Xft support
	added wlist_margin option to set how much space goes around text on items in the window list
	updated manual page about changes described by last three lines
	revised the calculations done for constructing the window list

0.0.96:
	always return 1 if we could use an event in ewmh_handle_event()
	don't define variable in the middle of ewmh_handle_event()
	handle some _NET_RESTACK_WINDOW client messages - kicker panel needs this to work propperly
	added map_center option to make new windows apear in the center of the screen
	fixed bug that would give windows without titlebar buttons if config was reloaded
	renamed border_width to border_spacing, border_width now sets the real border width
	added border_color and inactive_border_color options to set border color separately
	added button_width option so the user can set the amount of space between buttons
	border_spacing and title_spacing no longer have to be at least 1 (0 now)
	edited man page accordingly

0.0.95:
	initialise dpy as NULL, don't try use it in quit() if it still is NULL
	set up signal handler first, then open display
	added comments in main.c and moved some stuff around for better readability
	don't try to map already mapped windows in quit() - only iconic ones are really unmapped
	comments about defcfg and header targets in Makefile, comments in the perl files about their function
	added comment about the function of buttons_update() in buttons.c
	use sprintf() instead of strncpy and strncat in cfg_read()
	added comments in config.c
	don't include <X11/extentions/shape.h> if SHAPE is not defined
	modified licence for release in 2010
	removed -std=89 and -pedantic, still complains on some platforms and it's doubtful if matwm well ever fully comply with the ISO C90 standard
	set _NET_WORKAREA in a way nautilus listens to (when managing the desktop it would place icons under the top panel)

0.0.94:
	fixed evil bug that would happen when windows would dissapear while being dragged
	renamed qsh to sighandler
	using signal() instead of sigaction() now - apearantly sigaction() is no valid ISO C90
	using fork() instead of vfork() by default - also to comply with ISO C90

0.0.93:
	revised motif hints implementation once more (decoration hints schould be fixed now)
	mid-sentence tabs in mwm_hints.h replaced by spaces, added comments
	little correction in README to sound less stupid
	**pre1 release
	modified makefile to work with minix
	added ifdefs for people without vfork
	a few spaces in client() replaced by tab
	made make*.pl executable
	using nested if's instead of one big if in main loop and other places (for i am uncertain if the language implies that in if(this() && that()) that won't be called if this() returns 0 - and it's more readable anyway)
	prevent strlen on NULL pointer in client_update_name() for similar reasons
	replaced load of if's for some key actions with case statement in events.c
	only call keyaction() once in wlist.c
	more parenthesis in call to select() in main() in main.c 
	explicity check if sr is zero in main loop
	send only one char to qsfd instead of an integer
	check if current exists if trying to raise it when adding new client in drag mode
	better error message if -display without argument given

0.0.92:
	makeheader now allows comments next to global variables - needed for client.c since 0.0.91
	removed useless calculation (result wasn't used) in config.c
	emwh_get_hints() now void instead of int, as it schould have been
	include <sys/wait.h>, as apearantly needed for wait()
	sorted includes in matwm.h a bit
	corrected giant assertion in client_grab_buttons() (there was && instead of || for checking if the button was not one of a load of buttons)
	removed a few unused variables
	modified use of XGetWindowProperty() ewmh.c and x11.c so it doesn't break strict antialiasing rules
	added a bit of comments in get_mwm_hints(), removed useless stuff in it and (MWM_FUNC_RESIZE | MWM_FUNC_MOVE) reversed for readability
	added ifndef stuff in headers to prevent including them twice
	did a lot of stuff for better complyance with ISO C90
	added headers as dependencies in Makefile
	replaces := by = in Makefile, don't know the difference
	using new _malloc() function (wich does error checking) now instead of malloc() directly
	prevent forgetting to free in get_wm_state() when not able to read correct hint
	use sizeof() macro in xerrorhandler instead of twice the same stray number
	do error checking on XGetWindowAttributes() in main() and isviewable()
	removed useless initialization of i in clients_apply_stacking()
	makeheader replaced by more portable perl script (makeheader.pl)
	default configuration now is an array of strings (one for each line) generated by the makedefcfg.pl script (makedefcfg target in makefile added for interfacing)
	added comments in matwm.h about enum statements
	qsfd now used differently, instead of sending signals to it we make it able to receive info that can be used to deceide what to do
	instead of calling exit directly we use qsfd_send(ERROR) or qsfd_send(QUIT) now

0.0.91:
	added comments in actions.c
	only unmap frame window when hiding, but not iconifying window - apearantly some applications did not like the previous behaviour
	**pre1 release
	when a new client maps on another desktop still map the client window - to comply with new behaviour described above
	added comments in client.c and x11.c
	do better checking on wheter to map the window list item or not in client_add()
	default keybindings for lower/raise
	schould only call get_wm_state() once in client_add() - hurray for drunk programming
	attempted to make client_add() more readable
	only focus new clients if focus_new is true AND the new window is visible (only checked if it wasn't iconic before, now propperly uses client_visible())
	also listen to UnmapNotify events if the the client's window can't be verified to be a child of the parent window

0.0.90:
	deinstall target of Makefile now uses $(RM) too
	iconic windows that are restored by a maprequest event also become focussed if focus_new is enabled
	fixed focus_new refocussing the window under the mouse after a delay sometimes (happened with xterm if the mouse was over the title bar)
	improved makeheader a bit, so it no longer fails due to the recent changes (added comments) in misc.c
	client_title_y renamed to client_title_x
	comments explaining the purpose of functions in evn.c and info.c

0.0.89:
	prevent collecting zombie children when spawning proceses
	respect motif hints flags better
	TODO list updated about plan to comment code for better readability
	added a lot of comments in misc.c

0.0.88:
	avoid hang on iconifying of windows not visible because they are on another desktop (client_hide is only to be called for visible windows)

0.0.87:
	don't call client_over_fullscreen() for new windows if they are iconic

0.0.86:
	better choise of wich buttons to grab on windows in client_grab_button()
	store return value of buttonaction() in client_grab_button() instead of using it over and over in the assertions

0.0.85:
	multiple stacking modes for fullscreen windows

0.0.84:
	double click can be set for every mouse button in the same way normal mouse buttons can be configured
	check if both clicks come from the same client with double clicks
	fuck menus and taskbar @ TODO

0.0.83:
	sticky, ontop and below buttons added & man updated about this
	double click actions now possible & added info about the options for this in the manual
	added info about wich buttons can be used to click buttons in manual

0.0.82:
	added title_spacing option to set amount of space between title and client window
	re-ordered things in default configuration
	removed unnecessary assertion in eat()
	apearantly title_width schould be one pixel bigger then XTextWidth() returns, corrected this
	configuration file supports escape codes now (this turned out to be useful as X color names can be html style hex colors prepended with #)
	updated the man page about the about two new features, divided it into more paragraphs to be readable by humans too and made a few corrections
	small edit to comment in makefile
	eat for space first in cfg_parse as this is a bit more efficient with default, and supossedly most configurations
	removed a few old plans from changelog, don't like it anymore
	added center_title option to make title centered and updated manual about it
	added some things to TODO list
	don't focus windows automatically if in drag or window list mode, updated manual about this behaviour
	client_focus doesn't set previous anymore when trying to focus a window with DONT_FOCUS bit set
	input focus set only at end of window list
	SIGHUP for config reload replaced with SIGUSR1 as using SIGHUP turns out to be a dumb idea
	update buttons before title in client_update()
	buttons_update() also handles position of right buttons parent window
	buttons can now be configured with buttons_left and buttons_right option, updated man about this
	don't call buttons_update() from client_add() as buttons_create() already calls it now
	do not focus windows that apear iconic when focus_new is enabled
	added center_wlist_items option to set text alignment of the window list, also updated man for this

0.0.81:
	"maximise" schould be "maximize", replaced it everywhere
	fixed Makefile: has propper depends now, compile objects separately, etc - with thanks to segin
	makeheader generaties c89 compliant comments now
	removed tmp.h - wth was it doing there anyway
	SIGHUP makes matwm reload all configuration files
	propperly free font structures, colors and ignore modifiers
	added exec_onload command to run things from configuration file whenever it is loaded (exec commands will only be executed when matwm starts)
	updated manual about new functions and added some details about configuration behaviour
	reversed order of ChangeLog, and fixed typo in 0.0.52 entry in it
	** pre1 release
	replaces some tabs by spaces in matwm.h, main.c, client.c and buttons.c
	removed comma at end of enum statement for key actions
	check if desktop count is more then 0 in config, instead of greater then STICKY
	update _NET_NUMBER_OF_DESKTOPS on configuration reload
	update buttons size and position, and title window size on config reload
	added -version argument - /me must not forget to edit makefile to set the version before release now
	remove plan for shade function from TODO as i don't like the idea anymore
	same for reloading config on change plans
	first initialized as 1 instead of 0, solves BadAccess errors and lack of sence
	free GCs propperly on config reload
	moved some stuff from main loop over to cfg_reinitialize()
	button size now separated from text_height, and compensated to draw expand button correctly if text_height is even
	iconify button now fixed size, so it doesn't fuck up if font size changes
	Button3 can also be used for window buttons, some left handed people might like this
	moved 2 calls to ewmh_update_clist() from event loop to client_add() and client_remove()
	removed a newline in client_hide that schouldn't be there

0.0.80:
	don't try to expand to directions already expanded to
	removed obsolete variable undermouse in client.c

0.0.79:
	removed obsolete selecting of EnterNotify on root window
	don't listen to EnterNotify events from client window to it's frame
	edited Makefile and README slightly to be more clear
	added argument for expand to make it calculate vertical space first instead of horizontal space and default keybinding for it, updated manual about this too

0.0.78:
	fixed client_focus_first() on desktop change
	fixed client_save() wich broke recently due to last changes in client_move()

0.0.77:
	only spaces in default config, no tabs (they fuck up if tabstop is different then mine)
	same for Makefile (where apropriate), 1 tab instead of 2 for intendation
	moveresize client window in client_update(), this fixes maximising/expanding/fullscreening openoffice.org and perhaps some other applications

0.0.76:
	configurenotify() uses functions from info.c to send data now - it used the client structure directly wich made it send faulty values
	client_move() and client_resize() also use the right functions to check if something has really changed
	client_clear_state() now sets x, y, width and height members of client structure as it schould and no more using current client instead of the one passed

0.0.75:
	allocate the right amount of memory in read_file() (was 1 byte too short)
	check if not trying to free a NULL pointer in key_bind()

0.0.74:
	set _NET_WM_ALLOWED_ACTIONS more correctly
	focus newly created windows option (a click can refocus the window under the mouse)
	updated BUGS about click to focus desktop thing in last releaste
	added more details on the focus model into the man page
	if the current window dissapears focus the window that was focussed before that if there is one else the topmost one
	keep taskbar always on top optionally and lots of work to make this not interfere with fullscreen mode
	layer member of client structure is no longer acessed directly by most functions, new client_layer() function is used instead

0.0.73:
	introduces CLICK_FOCUS and DESKTOP_LOCKED flags for better handling of special EWMH window types
	client_focus_first() stuff on EnterNotify, schould also work when click_focus is set

0.0.72:
	introduced client_focus_first() to focus the topmost visible window (called on enterevent for root window or window with DONT_FOCUS flag if no current window is there (in case the current window dissapeared), and on desktop change)
	client_clear_state() now used instead of twice the same code
	client_move() and client_resize() no longer return integer, was used nowhere as far as i know
	title_width renamed to client_title_width()
	introduced client_visible() function to replace a load of assertions
	removed seemingly obsolete or non-necessary initialisation of modifier masks in input.c (default configuration schould always be sane anyway - not makeing this foolproof as users can fuck it up badly anyway)
	added warning about default initialisation of things in default config being important for matwm to work in README

0.0.71:
	fixed overriding stuff by "none" key action and	made keybinder use memory a little more efficient - do not allocate memory for keys that are later overridden

0.0.70:
	fuck support for 0xFFFFFFFE desktops, it messed up support for 32bit platform
	NET_WM_WINDOW_TYPE things override other ewmh hints
	small correction to manual page

0.0.69:
	ignore whitespace at end of config file lines
	avoid a few assertions in eat() that aren't necesarry at all
	str_key return NoSymbol if no key could be found instead of 0
	if a key action doesn't make sence, don't grab the key
	don't grab mouse buttons if there is no mousemodmask
	grab buttons also for mousemodmask|nosnapmodmask if nosnapmodmask is there

0.0.68:
	client_to_border() also raises the window
	don't try to map window list items at iconify, when not necessary
	don't focus desktops or taskbars
	previous claim was bs, only 0xFFFFFFFE desktops can be done as 0xFFFFFFFF would be the sticky desktop, do error checking for it
	leave previous value intact if errorous value set for border_width of desktops
	added modifier mask to disable snapping
	updated manual page about snapping also being for screen edges

0.0.67:
	a few updates to the man page and readme file
	don't include anything from evn.c if DEBUG_EVENTS not defined
	made use of shape extention optional
	ICONIC windows no longer have their own desktop, but their own bit flag - to fix sticky
	added cast for current desktop value at XFree() in ewmh_initialize()
	fixed sticky windows (ICONIC is a bit flag again, no desktop), they will stay sticky after iconifying and restoring, dragging over the desktop edge and restarting the window manager
	don't go to sticky desktop if EWMH hint activates a sticky window
	update ewmh desktop of icons restored to another desktop
	if no windows are hidden for it still exit showing desktop mode
	get_ewmh_hints() renamed to ewmh_get_hints()
	added error checking for desktop count and border width in config files
	dc now is an unsigned integer, so up to 0xFFFFFFFF desktops are now supported

0.0.66:
	prevent focus stealing - EWMH can still set other winows active then the one under the pointer, if this happens a click will fix that
	support for click-to-focus and click-raise
	minor changes and additions to the man page concerning the behaviour of the window list
	when leaving window list, first focus warp the mouse to the new window, then umap the window list - avoiding eventual enter event etc for the window under the window list
	fixed checking for modifiers keys left after key release in window list event handler
	introduced README file
	from now on MIT licence will be used
	support for EWMH NET_SHOWING_DESKTOP mode, and modified iconify_all to do the same thing
	moved sentence about iconifying windows to iconify part, it was wrongly placed with iconify_all description
	if there is a current desktop defined by an EWMH hint, go there (greater then the number of desktops will be threated as the last desktop)
	also clients that were on a desktop further then the last desktop will be put on the last one
	found and fixed serious bug that would cause matwm to forget about restoring windows from the first desktop if quitting while on another
	added info about how to exit matwm, and how it will restore windows at exit in the manual page
	restored old (0.0.5 - 0.0.48) changelog from e-mails

0.0.65:
	updated TODO and BUGS concerning the introduction of the man page etc
	fixed deinstall target of Makefile a bit (man page schould be propperly deleted now)
	client_to_corner() also warps the mouse
	added a bit of info about virtual desktops in the manual page
	added raise and lower key action, added info about button and key actions for raising and lowering in man
	added information about the window list shown when next or prev key action is invoked in man
	resize drag tries to keep window corner under mouse cursor
	added checking for CAN_MOVE bit in client_to_border
	~ in man page replaced by $HOME
	more detailed description of window list behaviour in man page
	replaced break statements in hande_event() with return
	DONT_LIST flag will also be respected for EWMH client list
	listen to NET_WM_STRUT if no NET_WM_STRUT_PARTIAL is there

0.0.64:
	ewmh state only set to maximized if maximised to both directions
	replaced t and b arguments for maximise and expand with u and d (up and down)
	added my e-mail adress in the LICENCE file
	wrote a man page
	topleft, topright, bottomleft and bottomright key actions were replaced by new to_corner

0.0.63:
	obey global configuration file /etc/matwmrc
	separate bits for horizontal and vertical maximalisation
	replaced client_maximise() and client_fullscreen() by client_toggle_state()
	ewmh maximise message can now do separate horizontal and vertical maximalisation
	added default key bindings for hoizontal and vertical maximise (using new h/v argument to maximise key action)
	intendation now done with tabs instead of spaces
	all horizontal/vertical stuff now also works for expand, and for both now l, r, t and b argument can be used to apply these actions in one of these directions

0.0.62:
	update window list when clients iconified/restored/restacked

0.0.61:
	renamed end() to quit(), schould now compile and run on dragonflybsd too
	set value of _NET_WM_ACTIVE_WINDOW to None if current == NULL, as specified by EWMH
	also check if window still exists in button_handle_event and drag_handle_event
	do not try to unfocus removed clients
	always show window id in debugging messages

0.0.60:
	drag modes defined in enum statement
	set input focus to PointerRoot on exit, not root
	GrabModeAsync for keyboard, on mouse grabbing
	cleaned up the mess in events.c a bit
	prevent losing focus better, client_focus(NULL) now possible
	on hiding/removing client, focus is restored to topmost window instead of lowest one
	fixed redrawing of sticky windows when focussed/defocussed

0.0.59:
	added key actions for always on top and stay below, also made them listen the apropiate ewmh hints
	get_ewmh_hints() now looks on wich desktop windows schould be
	several changes/additions here and there to make the above two possible
	ewmh_update_desktop() uses long for storing the data, as i think this is more correct

0.0.58:
	topleft, topright, bottomleft and bottomright key bindings now also contrain to the ewmh workspace
	removed things from todo list that were already done in previous releases
	introduced key action to make windows sticky
	_NET_WM_DESKTOP messages to root window understood, so pager can move windows to other desktops etc
	removed more dumb things from TODO
	XFreePixmap() in client_remove() now right under freeing name, for clarity
	clients_alloc() no longer fails on linusk if there are no clients left
	on exit clients are now reparented in better order (current desktop and sticky windows on top, under it all desktops from left to right order, then iconic windows)
	set input focus to root window on exit - this prevents some problems with clients that steal focus i hope

0.0.57:
	virtual desktops
	_NET_REQUEST_FRAME_EXTENTS and _NET_FRAME_EXTENTS, hopefully handled and set in the right way

0.0.56:
	set wlist_with to initial value from wlist_update() instead of wlist_start (this makes way more sence i think)
	weird

0.0.55:
	fixed bug that made clients with the title "" have fucked up titlebars
	fixed bug in updating the size of titles (buttons_update() was done after call to title_width(), had to be before it)
	only update ewmh state when nececarry @ move/resize
	same for client list
	taskbar and desktop no longer show up in task list, thanks to the new DONT_LIST flag
	fullscreen bit now set for desktop
	fullscreen windows resized on resolution change
	repairered ewmh strutting thing (confused top and right)
	_NET_DESKTOP_GEOMETRY now updated on root window resize

0.0.54:
	handling configurerequests no longer uses client_move() and client_resize(), but sets the cordinates and calls client_update() - so it does not reset state etc, the first 2 functions named are to be called if the user initiated the movement
	removed iconify on _NET_WM_SET_ACTIVE for current window - it is stupid and taskbar knows better apearantly
	removed focus on map, turns out to be annoying
	client_deparents puts windows where the new client_x() and client_y() functions say it is
	free title pixmap on client_remove() - how could i forget that

0.0.53:
	fixed the very annoying bug in mouse warping introduced with previous version
	removed now obsolete references to client_draw_border()
	introduced functions for calculating the internal size of clients, wich makes stuff a little easyer with the border being around the window insit of in it now
	fixed window snapping - it did not yet use client_x() and client_y() to get window positions, wich obviously fucked up with expanded/maximised/fullscreened windows etc
	maximise, expand and fullscreen only work if CAN_MOVE and CAN_RESIZE are set for the client, like they schould (used to work as long as one of them was set)
	CAN_RESIZE will be removed from flags if maximum size and minimum size are equal

0.0.52:
	button_current initialized as None (how could i forget that)
	focus new windows on creation - expirimental, maybe schould be done only if none is focussed yet or click to focus is implemented
	focussing of topmost window after client dissapear fixed - look in stacking, not clients
	title is drawn to a pixmap that is the background for the title window, as this seems to redrawed way faster
	let X draw the border now, as this also redraws faster
	because of changes makeing motif hints property notify response be broken, it was removed - i doubt any application uses it anyway so it is not worth the effort for now

0.0.51:
	updated changelog @ 0.0.49 to state changelog was introduced then, and @ 0.0.50 the forgotten button grab stuff was added
	renamed CHANGELOG to ChangeLog to comply with what is appearantly tradition
	now maximise function takes ewmh_strut into account
	xo and yo members now save the offset of the window when it's mapped, so it can be (hopefully) restored propperly later on
	maximise and expand now check for CAN_MOVE and CAN_RESIZE bit
	implemented a bit more EWMH things
	maximise raises client given to it, not current
	all macros are replaced by functions to give the window's size and position wich are now rather dynamically calculated then stored
	changes in client size or position are now applied by calling client_update(), client_update_pos(), client_update_size() and client_update_title() functions
	added fullscreen state
	moved code around a bit creating a little more order
	removed comment that didn't make sence anymore
	no more warp to spawned windows, this fucks up some apps (xine)
	further EWMH implementation
	changed drag function to work with EWMH stuffs, also made it restore the client if it iconic
	fixed iconify_all function that broke when stacking and clients variables were separated

0.0.50:
	fixed bug that would sometimes draw a little square in the topleft corner of the root window
	added support for motif move hint and motif resize hint schould be fixed too
	attempted to make enum statements in matwm.h more readable
	stacking now keeps the stacking order of clients, clients keeps them from oldest to newest - and client_number() lets you specify one of those to dig trough
	introduced "layer" member in client structure, wich defines the layer of the window (always on top, always on bottom etc)
	partial EWMH implementation
	if the CAN_MOVE or CAN_RESIZE bits are not set for a client, accordingly the buttons for that will no longer be grabbed

0.0.49:
	introduced changelog
	new windows map under window list or window currently being dragged
	button_current now uses a value of "None" instead of the root window to define there is no current button
	client_focus checks if window is really viewable before setting input focus
	window list puts off screen windows on screen if they are chosen - with new client_save() function
	renamed handle_button_event() to button_handle_event()
	fixed bug in get_mwm_hints() that made it possible in weird conditions a call to XFree would be apropriate but not done, and it now passes mwmhints variable directly to XGetWindowProperty()
	on exit clients are deparented in reverse order, as this has some advantages over the old method
	removed useless get_wm_transient_for()
	fixed wlist_end() segfaulting if current == NULL

0.0.48: last entry that came from an email
	added "iconify_all" key action (defaults to mod4-a and control-mod1-a)
	dont stop looking for arguments after -display argument - have i been drunk?
	graphics contexts initialization now smaller - half of it didn't really make sence (setting values to the default value, set a value and then set it again before use), maybe copied those lines from yeahwm

0.0.47:
	faulty printf() call in xerrorhandler that caused segfaulting fixed
	more checking if windows still exist and has_client() has been replaced by has_child() in x11.c (wich allows to do checking on any set of parent & child as opposed to a client structure)
	don't warp to new windows when dragging or if window list open

0.0.46:
	move() foolish configurenotify sending of old coordinates fixed
	default configuration has bindings for people with a windoze key now
	adding a key to matwmrc leaves default key bindings intact now, they can be reset with the "resetkeys" command
	also if a new key binding is added the last one set will be used instead of the first one now
	moved a lot of functions from client to the new actions.c, including all content of icons.c to make stuff a little more organised, and isunmap() predicate placed in x11.c

0.0.45:
	client_focus() makes more sence - introduced client_set_bg() so it doesn't have the same stuff twice
	fixed input focus stupidity with wlist_end() (introduced in .44 i think)
	extra debugging stuff and other details
	mwm hints fixed up once again, i broke it some time ago

0.0.44:
	fixed major bug in remove_client, that could induce segmentation faults (the loop to pull a client out of the array went one client too far)
	fixed input focus not always updated when restoring iconified clients bug
	check if client still has a window on most events exept destroynotify
	made redrawing of buttons, and title more efficient
	buttons dissapear if they dont fit on the titlebar anymore
	makeheader is a shell script now (wich depends on sed)
	dont need to unmap buttons when no titlebar on a window, so we don't do this anymore
	cleaned up code a bit (better naming of functions etc)

0.0.43:
	previous claim on x errors were a bit utopic, but remove_client() now does an XQueryTree to see if the window in it still exists and hopefully matwm doesnt try to mess around with destroyed windows that much anymore now
	window buttons schould now act a bit nicer visually, as in when the mouse is clicked and dragged off the button and back on it the square indicating it is selected not (re)apearing whilst releasing the button would do nothing at all

0.0.42:
	rc file doesnt use ':' as separator anymore (just whitespace now)
	"exec <command>" line in matwmrc file schould run <command> on startup
	select() loop now makes more sence, and won't get cought in XEvent() blocking it because it assume data == event
	any x errors occuring schould be history (new stupid ones introduced by buttons fixed, and also the old badwindow errors that happened because of mouse entering the parent window when a client window dissapeared triggered useless call to focus())

0.0.41:
	buttons are now only activated when the mouse has not left them before releasing after its clicked
	if -display used exec now puts DISPLAY evironment variable accordingly in spawn() function

0.0.40:
	minimise button can now change
	no more inactive foregroundground on active background, but squares around buttons

0.0.39:
	button parent window now acts like root window
	client structure members "state", "title", "border" and "resize" are now replace by the bit mask "flags"
	added "title" button action, wich toggles the title bar of a window on and off
	buttons schould now be unmapped if the window has no title
	fixed bit mask stupidity that made broke shaped windows totally & add_client now calls set_shape instead of doing the same as set_shape

0.0.38:
	window buttons implemented
	expand function now makes sure the window isn't maximised

0.0.37:
	fixed calculation of other windows their height in expand()

0.0.36:
	doesnt let window list become wider then the screen now
	added expand() function, and key action for it
	renamed cmpmod to cmpmodmask
	iconic, maximised, expanded and shaped members of client structure are now replaced by the bit mask in member called "state"

0.0.35:
	fixed read_file() - add final zero if no EOF read or something like that, was long ago
	fixed DestroyNotify handling - mapping a window and immediatly destroying it schould no longer bring trouble
	erm duno what else its been long confusing time

0.0.34:
	abandon stupid objects stuff in makefile and add header, install and deinstall targets
	fix pointer stupidity (@ config.c)
	made read_file() work fox linusk too and add fix for in case no eof is read
	add font boundary stuff for window list and set fixed as default font ("*" is no good at all)

0.0.33:
	new makefile - including clean target
	fixed bugs introduced with pointer stuff @ maprequest and configurerequest handling - they sometimes acted faulty
	misterious badwindow errors gone somehow
	if current client is iconified, focus first client
	if there are only iconic clients dont set offset for them
	split off a deparent_client function from remove_client funtion, to make stuff less dirty (confusing fc argument, unnecesary if()'s)
	understands -display and -defaults arguments now (first one is obvious, other one prints default configuration to stdout and exits)
	perhaps bugfixes i forgot

0.0.32:
	cleaned up some code
	fixed some bugs
	added ignore_modifier option

0.0.31:
	new configuration thing (and erm can launch programs now)
	maybe several bugfixes
	prolly several bugs

0.0.30:
	all clients are now pointers
	windows are now sorted, and icons are separated in the window list
	windows with no name are given a title
	etc

0.0.28 & 0.0.29: one mail was about these two versions, yet included none
	.28 -> latest version i had with taskbar, prolly includes bugfix but dont know exactly what
	latest version now officialy has window list instead of taskbar, but maybe i revert this if it turns out to have problems too
	also cleaned up the code a little, and button actions are now no longer strings
	note that configuration stuff has changed a little since taskbar removal - the mouse buttons stuff

0.0.27:
	fixed stupid thing i forgot when adding the new icon stuff
	prolly forgot stuff i did too

	as this release seems to be pretty stable next thing to to is rewrite the configuration stuff to break it again i gues

0.0.26:
	fixed stupid bug with redrawing icons
	changing resolution/size of root window doesnt fuck up anymore

0.0.25:
	forget to mention at .24 a licence was included and "snap 0" schould be "snap: 0"
	added window snapping to the resize windows
	doesnt re-use parent windows as icons anymore after all, this gives problems when matwm gets brutally murdered or would it segfault or anything concerning the placement of windows

0.0.24:
	now uses total_width and total_height macros for a little cleaner code
	window snapping is added (put "snap 0" in .matwmrc to disable)

0.0.23:
	signal handling function rewritten to work with xorg 7.4 - maybe other little things too
	configuration stuff for modifier keys improved a little
	updated default key bindings to be a little sane
	fixed bug concerning the maximalisation of windows without title bar

0.0.22:
	compiles on linusk now (no more strlcat cpy etc but strncat)
	linusk also needed a header for uint32_t etc but they are no longer used as turns out motif wm hints are returned as long integers not 32 bit pieces as many code and manual for XGetWindowProperty suggest
	speaking of wich, mwm hints got fixed up a little more - somehow xmms, xine and mplayer did fine before but how it are miracle
	anyways i verified this by comparing the values matwm reads to xprop output and its behaviour to mwm's
	this was not yet tested on 32bit platforms tho - but i am quite sure it will work there
	but ftw @ fvwm's decorations.c using 'int' datatype for all values in mwmhints structure - evilwm and yeahwm use uint32_t i think, schould check that out

0.0.21:
	fixed mwm hints once more hopefully mplayer and xine now behave better

0.0.20:
	shape thing fixed, transient windows recognised etc - xmms and xine schould now really work

0.0.19:
	major bugfix - no more dissapearing windows (cause identified but not understood - unmapnotifies when there is nothing unmapped, x are crazy?)
	on destroynotify no longer trying to do stuff with window that is gone - still some misterious and less misterious badwindow errors possible but this is supposedly harmless tho i want it fixed (what if a new window with same id appears suddenly)
	mwm hints fixed up mostly i hope

0.0.18:
	focus behaviour fixed: enterwindow events on client window are now also handled
	handles motif wm hints now, but work is to be done on that
	shape extension things work now

0.0.17:
	xrm_getint() now works so border width etc can be set from configure file
	gravity now works

0.0.16:
	removed some plain stupidity - me tired head forgot somewhere in the past that several strings from default config (mouse button actions) compared with strcmp were NULL

0.0.15:
	fixed bug in binding keys (now handles mappingnotify)

0.0.14:
	fixed shift lock bug (keybinds did not work if it on)
	made config thing little cleaner
	etc

0.0.13: mail was empty

0.0.12:
	fully configureable now

0.0.10:
	handles window state stuff better now
	unmaps client window for iconifying and re-uses parent window as icon
	bugfixes

0.0.9:
	major redesign - moved code around a lot hoping it would make more sence then
	xerror handler now searches for client to wich resourceid belongs
	fixed some bugs (including stupid mistake @ minimise thing)
	maybe introduced new bugs because maties @ almost 40hrs of uptime

0.0.8:
	added taskbar / iconify thing
	introduced new bugs
	removed focus previous window on remove_client because it were crap
	event loop modified
	atoms now have xa_ prefix and wm_hints is used for other purpose
	etc etc

0.0.7:
	reduced flicker considerably - draw_client() after each resize
	move() and resize() dont act if client already has the requested size and drag only calls them for last motionnotify in que now
	next() and prev() now have argument to set wether to move pointer towards newly focussed window

0.0.6:
	hopefully less foolish and agressive response to unmaprequests
	changed focus behaviour -> if there are windows there shall be one focussed

0.0.5: changelog was part of e-mail i sent to myself at each release from this one on to 0.0.49 when real changelog was introduced, recovered changelog from all those mails at version 0.0.66
	done some bugfixes and cleaned code up a little
	made draw_client() (formerly client_draw()) draw border to window frames
