2001-08-18  Steen Lumholt  <slu@lumholt.dk>

	* events.c (handle_configure_request): Ensure that the border and
	title is visible.

	* client.c (initialize_geometry): Ensure that the title is visible
	when a user or program specified position is given.

2001-07-27  Steen Lumholt  <slu@lumholt.dk>

	* events.c (process_events): Missing break in the MotionNotify
	case.

	* wimpwm.c (inner_main): Don't finalize display.

	* events.c (restart): Use `execlp' instead of `execl'.
	Finalize display and stat code removed.
	(cycle_candidate): Gravity code removed.

	* display.c (handle_xerror): Show request code.

	* display.c (finalize_display, exit_successful): Functions removed.
	All calls to `exit_successful' replaced with call to `exit'.
	Signal handlers removed.

	* client.c, client.h (change_gravity): Function removed.
	(calculate_smart_geometry): Hack to get correct y position.
	(initialize_geometry): New arg `adopted_attr'.  All callers
	changed.  Don't initialize geometry if it's an adopted client.
	(create_client_window): Don't call change_gravity.  New arg
	`adopted_attr'.

	Make various functions static.

	* events.c (grab): Renamed from grabkeys.  Also grab pointer
	buttons.
	(handle_button_press_event): Handle client window mouse events.

2001-07-25  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>

	* menus.c (create_menu_window): Yakazao -> wimpwm.

	* client.c (client_recalculate_tabs): Don't take hidden windows
	into account.

	* events.c (handle_configure_request): Make sure that
	self-configuring windows show are initialized to correct Y
	coordinate and that client window is positioned correctly.

	Use client->wm_state instead of get_wm_state in various places to
	reduce cpu time.

2001-07-24  Steen Lumholt  <slu@lumholt.dk>

	* client.c (initialize_geometry): Don't use the obsolete size hint.

2001-07-23  Steen Lumholt  <slu@lumholt.dk>

	* events.c (handle_button_press_event): Don't create a new window menu
	when another menu is already shown.

2001-07-22  Steen Lumholt  <slu@lumholt.dk>

	* client.c (reparent): Set ButtonReleaseMask and Button3MotionMask
	in the tab window event mask.
	Set the tab window cursor.
	* events.c (point_in_box): New function.
	(STATE_START_DELETE, STATE_CANCEL_DELETE): New states.
	(handle_button_press_event): A Button3 (delete client) event now
	set the current_state to STATE_START_DELETE and set the pirate
	cursor.
	(handle_button_release_event): Send WM delete when the
	current_state is STATE_START_DELETE.  Reset the cursor if the
	current_state is STATE_CANCLE_DELETE.
	(handle_motion_event): Cancle the delete state if the pointer
	leave the box.

	* menus.c (create_menu_window): Set the cursor.
	* display.c, display.c (get_font_cursor): New function.
	* display.h: Include X11/cursorfont.h.

	* client.c (client_adjust_tab_width): Check if c->name is NULL.

2000-12-11  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>

	* events.c (handle_key_event): Added alphabetic synonyms for the
	cursor key operations, to adjust wimpwm to my brand new *happy
	hacking* keyboard.

2000-05-04  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>

	* wimpwm.c (read_init_files): Now the system init file installed
	with wimpwm is read before the user init file.

2000-04-28  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>

	* menus.c: Major rework to make it work with libsizzle.

2000-01-20  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>

	* client.c (redraw): Active windows now have some lines drawn on
	the title bar to make it more obvious which one has the focus

	* workset.c (workset_select): Little bug fix.  Now after a working
	set switch the same window is focused as was when we last visited
	that working set.

2000-01-10  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>

	* screen.c (resize_client_to): New function.

+	* events.c: Added window resizing and moving per keyboard.

	* client.c (initialize_geometry): Make sure new windows always get
	mapped on the visible part of the screen.

2000-01-05  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>

	* read.c (read_list): Fixed a bug.  Read-list returned way to long
	lists if whitespace appeared before the closing parantheses.

+	* menus.c: Menus are now created from variables set in .yakazao.

	* cell.c (print_cell): Print '\' in front of '\' and '"' when
	printing strings.

	* events.c (process_events): Fixed event queue handling.
	(cycle_focus): Fixed bug where windows on other workspaces were
	not ignored.

	* display.c (finalize_display): Remove all clients and free cell
	memory on cleanup procedure.

+	* menus.c (menu_select): When holding the Ctrl modifier while
	selecting from the working set menu the user can send a window to
	that working set.
	(create_window_menu): Draw menu window as soon as it is created or
	raised.  Avoids blank windows.
+	(menu_select): When holding ctrl when selecting from window list,
	working set is warped to that window instead of other way round.

2000-01-04  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>

	* cell.c, cell.h, read.c, read.h: New files for reading and
	handling cell objects.

	* Added 2000 to all Copyright strings.

	* alloc.h: Cleaned up comments.

	* alloc.c: Removed inclusion of "util.h".  Added comments from
	header file.

	* menus.c, menus.h: All data concerning menus is now held in one
	single data structure MENUS.

	* yakazao.c (inner_main): Added call to init_menus ().

2000-01-03  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>

	* yakazao.c (inner_main): Corrected the order of create_workset()
	calls and added the working set `WWW'.

	* screen.c (make_client_visible): New function. Makes a client
	window visible by moving it to its original position on the
	screen.
	(make_client_invisible): New function. Hides a client window by
	moving it off the visible area of the screen.
	(raise_client): New function. Simply raises the given client
	window.

	* workset.c (workset_next): New function. Navigates to the
	previous/next working set.
	(workset_select): Finally, it works. When selecting a different
	working set, all currently visible windows are made invisible and
	the windows in the new working set are shown.

	* menus.c (create_application_menu): Menu items are now created in
	the same order as they appear in the initialization array.
	(create_workset_menu): Menu items are now created in the order
	they are created using create_workset().

	* events.c (handle_key_event): Changed definitions for C-M-Left
	and C-M-Right to change to previous/next working set.

1999-12-09  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>

	* events.c (handle_button_press_event,
	handle_button_release_event): Separated handling for button press
	and release events.
	(handle_motion_event): New handling function for mouse motions.
	General support for root menus added.

	* display.c (setup_gcs): Added GC for drawing menu entries.

	* menus.c: Implemented root menu for selecting windows.

1999-12-08  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>

	* events.c (cycle_focus): New parameter hidden_too, so that hidden
	windows can be cycled too, if requested.
	(handle_key_event): Added key short cuts for starting emacs
	(C-A-e), netscape (C-A-n), dialup to university (C-A-u) and root
	shell (C-A-s).

1999-11-18  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>

	* events.c (handle_key_event): Reparent all windows to the root
	window on restart, that fixes the bug that windows move over the
	screen when restarting.

1999-11-17  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>

	* events.h: Removed prototypes of event handling routines.

	* yakazao.c: Code cleanup, commenting and adjusting to renamed
	function and variable names.

	* screen.c (correct_geometry): New function. Adjusts window
	geometries to sane values.
	(draw_outline): Draw window geometry in the middle of the window
	outlines instead of the lower right corner.
	(manually_resize): Window resizing now works by dragging the mouse
	over any window border.
	(drag): Implement opaque window moves (disabled by default,
	because its slow).
	(snap_client): New function. Adjusts a client window's position so
	that it snaps to either the screen border, or to any other
	client's border.

	* display.c (setup_display): Changed line width for window
	outlines to 2.

1999-11-16  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>

	* client.c (manually_select_window): New function, lets the user
	interactively select client windows.

	* screen.c (draw_outline): Respect width_inc and height_inc in the
	size hints, so that the size of xterms, emacsen etc. gets
	displayed correctly.

1999-11-15  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>

	* new.c (make_new_client): New client windows now automatically
	get the input focus.

	* client.c: Implement node handling routines.
	(send_wm_delete): Bug fix: deallocte list of protocols obtained
	from the X server.
	(remove_client): Removed from_cleanup parameter.

	* client.h: Move client stuff from yakazao.h here.

1999-11-14  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>

	* alloc.h: Added comments.

	* menus.c: New file. Implement node handling routines for menus.

	* menus.h: New file. 

1999-11-13  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>

	* std-node.h, std-node.c: Merge *-node.{c,h} into this one.

1999-11-11  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>

	* events.c (handle_key_event): New function, supports window
	movement via hot key combinations.
	(do_event_loop): Added support for key events.

1999-10-30  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>

	* int-node.h: File created.

	* int-node.c: File created.

	* file-node.c: File created.

	* file-node.h: File created.

	* string-node.c: File created.

	* string-node.h: File created.

	* vector-node.h: File created.

	* vector-node.c: File created.

1999-10-27  Martin Grabmueller  <mgrabmue@cs.tu-berlin.de>

	* node.h: File created.

	* error.h: File created.

	* node.c: File created.

	* wakazao.c: File created.

