2003-09-18  Shawn Betts  <sabetts@vcn.bc.ca>

	* stumpwm.lisp (handle-unmap-notify): remove the window's entry in
	screen-window-table.

	* stumpwm-input.lisp (read-key-handle-event): return a (code . state) pair.
	(read-key): new function
	(read-line): likewise
	(draw-input-bucket): likewise
	(process-input): likewise
	(handle-key): remove function
	(read-input): remove function

	* stumpwm-user.lisp (focus-next-window): call sort-windows
	(focus-prev-window): likewise
	(echo-windows): likewise
	(select-window): don't search for a match if the user input was
	().
	(select-window-number): new function
	(other-window): likewise

	* stumpwm.lisp (*window-format-fn*): new global
	(*key-binding-alist*): add commands on #\g, #\0-9, #\t, and #\'.
	(screen): remove input-bucket slot
	(sort1): new function
	(mapcar-hash): likewise
	(window-name): return the name as a string.
	(window-number): new function
	(sort-windows): likewise
	(handle-map-request): create the window-table hash table for the
	new window.
	(handle-key-press): call read-key.
	(find-free-window-number): new function
	(add-window): likewise
	(move-window-to-head): likewise
	(current-screen): call xlib:window-equal.
	(echo-window-list): use *window-format-fn* to format the window
	strings.

2003-09-17  Shawn Betts  <sabetts@vcn.bc.ca>

	* stumpwm.lisp (*key-binding-alist*): add select-window
	(key-binding): new structure
	(*editor-bindings*): new global
	(modifiers): new structure
	(screen): add input-bucket, modifiers and font slots
	(conc1): new function
	(init-screen): set the input-window's background to black, border
	to white and border-width to 1.
	(init-screen): init font and input-bucket
	(*event-fn-table*): new global
	(define-stump-event-handler): new macro
	(:map-notify): new event handler
	(:configure-request): likewise
	(:map-request): likewise
	(:unmap-notify): likewise
	(:create-notify): likewise
	(:destroy-notify): likewise
	(:key-press): likewise
	(handle-event): new function
	(handle-events): use xlib:process-event and handle-event to
	process events.
	(handle-configure-request): check the value-mask before setting
	the attribute. New function argument, stack-mode.
	(create-message-window-gcontext): remove font function
	argument. Use screen-font instead.
	(setup-message-window): likewise
	(echo-window-list): likewise

	* stumpwm-user.lisp (select-window): new function

	* stumpwm-input.lisp (read-key-handle-event): new function
	(read-line): likewise
	(setup-input-window): likewise
	(shutdown-input-window): likewise
	(update-modifier-map): likewise
	(x11mod->stumpmod): likewise
	(mod->string): likewise
	(keycode->string): likewise
	(cook-keycode): likewise
	(keycode->character): likewise
	(handle-key): likewise
	(read-input): likewise

2003-09-13  Shawn Betts  <sabetts@vcn.bc.ca>

	* stumpwm.lisp (geometry-hints): truncate the values where
	division is used.

2003-07-21  Shawn Betts  <sabetts@sfu.ca>

	* stumpwm.lisp (#:stumpwm): change package name from stump.
	(stumpwm): change name from stump
	(stumpwm-internal-loop): change name from stump-internal-loop.

	* stumpwm-user.lisp: define everything in package #:stumpwm

2003-06-12  Shawn Betts  <sabetts@sfu.ca>

	* stumpwm-user.lisp (set-key): new function
	(focus-next-window): moved from stumpwm.lisp
	(focus-prev-window): likewise
	(focus-forward): likewise
	(banish-pointer): likewise
	(delete-current-window): likewise
	(echo-windows): likewise
	(focus-forward): call focus-window
	(delete-current-window): call delete-window.

	* stumpwm.lisp (*map-window-hook*): new hook
	(*unmap-window-hook*): likewise
	(*new-window-hook*): likewise
	(*destroy-window-hook*): likewise
	(*focus-window-hook*): likewise
	(*unfocus-window-hook*): likewise
	(screen-height): new function
	(screen-width): likewise
	(window-name): likewise
	(focus-window): likewise
	(current-screen): likewise
	(warp-pointer): likewise
	(echo-window-list): call window-name
	(delete-window): likewise

2003-06-11  Shawn Betts  <sabetts@sfu.ca>

	* stumpwm.lisp (*message-window-padding*): new variable.
	(init-screen): fix bug assigning white to the black pixel.
	(stump): wrap everything after opening the X display in an
	unwind-protect.
	(stump-internal-loop): remove unwind-protect code.
	(setup-message-window): renamed from resize-message-window. clear
	the window. properly calculate location. use
	(handle-map-request): maximize the window before mapping it.

	*message-window-padding*.
	(invert-rect): new function
	(echo-window-list): highlight the current window
	(geometry-hints): return x and y. handle transient windows by
	centering them with their current size attributes.
	(maximize-window): get the position from geometry-hints as well.
	(handle-configure-request): use a single setf to honour request.


2003-06-10  Shawn Betts  <sabetts@sfu.ca>

	* stumpwm.lisp (#:stump): export stump
	(init-screen): create the message window with a black background.
	(handle-key-press): force output before handling the key.
	(create-message-window-gcontext): new function
	(max-width): likewise
	(resize-message-window): likewise
	(echo-window-list): likewise
	(echo-windows): call echo-window-list
	(echo-window-list): pass the correct list to resize-message-window

