2001-09-25  Carl Worth  <cworth@east.isi.edu>

	* Released 0.5.7

	* stroke.c: Fixed nasty new bugs in stroke bounding box
	computation introduced by the last bug fix. Sheesh!

	* stroke.c: Fixed bug in computing bounds of stroke after
	transformation, (width and height are now scaled in the same way
	as the pixel coordinates).

	* grid_classify.c: Fixed bug that was preventing taps from being
	recognized properly.

	* etc/alphabet: added several strokes, (recommended by Ken Steele):
	CW circle in punctuation mode => at
	lowercase g shape with a loop
	backwards m => Meta
	modeshift from 123 => !@#
	7 with a slanted tail in number mode
	changed up, right to be 'f'
	TAB is now up, right, left
	no letters in punctuation mode
	number mode now includes punctation (and punctuation from letter mode)

	* grid_parse.c: Better error message on failed include.

	* rec.c: Added logging of mode changes.

2001-09-24  Carl Worth  <cworth@east.isi.edu>

	* rec.c: Fixed adaptive baseline control to use width/height after
	rotation rather than before rotation.

	* alphabet: stroke for 5 no longer needs initial hat.

	* Released 0.5.6

	* stroke: moved the bounding box computation into stroke_t where
	min_x, min_y, width, height are now always valid.

	* xstroke: I think the rotation code is now all working. It's
	enabled by default, but it is restricted to a max rotation of
	11.25 degrees by default and has no feedback. The -r, -rotate
	options disable the cap, (and enable feedback when the restriction
	is exceeded).

	* alphabet: Moved shift strokes to the top of the alphabet.

	* matrix.c: Better handling of fixed-point precision for matrices
	avoiding some errors that were causing wild translation problems
	in the rotation correction, (only visible when debugging was
	enabled).

2001-09-22  Carl Worth  <cworth@east.isi.edu>

	* xstroke: bug fixes for rotation, (not yet complete). Added -r,
	-rotate, -R, -norotate options. Disabled rotation by default.

	* alphabet: Added 'p' instead of 'R' to
	[no_capitals_in_lowercase_mode]. Replaced '=' with 'e' in
	[abc]. (Still need to find a replacement stroke for '=').
	Fixed the 'w' instead of 'y' clashes.

2001-09-19  Carl Worth  <cworth@east.isi.edu>

	* xstroke.c: Experimental support for automatic inference of
	baseline orientation. This is probably still full of bugs.

	* args.c: added a nograb option
	
	* args.h: changed default font from fixed-8 to mono-8.

	* control_win.c: minor bug fix that control_window status was
	being redrawn without eing erased first, (hence if it was
	partially obscured then part of the text would become brighter
	which looked rather odd).

	* brush.c: softened the shadow a little bit.

	* Released 0.5.5
	
	* brush.c: Added support for brushes with drop shadows, (thanks to
	Keith Packard for the Conjoint and Disjoint operators that made
	this possible -- as well as for the rendering code).

2001-09-18  Carl Worth  <cworth@east.isi.edu>

	* Released 0.5.4

	* alphabet: slight tweak to 'R' stroke, (many
	capitals_in_letter_mode are currently broken)

	* rec.c: Fixed stroke lookup to do a depth-first search through
	ancestors whenever stroke lookup fails. Seems like this is the
	right thing to do.

	* Released 0.5.3

	* xstroke: Fixed bugs in the RandR support. (It actually works
	now).

	* xlp_event.c: Fixed some seriously broken event mask selection.

	* Released 0.5.2

	* alphabet: Moved the capitals_in_lowercase_mode into their own
	mode that can optionally be extended by the [abc] mode. Also added
	no_capitals_in_lowercase_mode for those that prefer things that
	way.

	* Released 0.5.1

2001-09-17  Carl Worth  <cworth@east.isi.edu>

	* brush.c: Fixed the bug in interpreting the colors from GIMP
	images, (meaning the brush I had drawn red in order to appear blue
	is now back to an ugly red).

	* grid_classify.c: Added TAP_DRIFT parameter to help correctly
	interpret very short strokes as taps.

	* grid_classify: eliminated buggy static data from
	grid_classify_stroke.

	* xstroke: Now coorectly sets the initial mode to the first mode
	found in the config file, (instead of ugly hard-coding to "abc").

	* xstroke: Fixed bug in displaying bogus initial modifier state.

	* xstroke: now loads ~/.xstroke/alphabet by default, (falling back
	to /etc/xstroke/alphabet if not found).

	* xstroke: added include support to config file syntax.

	* xstroke: fixed mode logic bug. Now if you start in mode A, shift
	to B, then shift to C, and do a stroke, you will revert to A like
	you should, (the buggy behavior reverted to B).

	* xstroke: added command-line arguments to control location and
	amount of logging.

	* xlp_win.c: xlp now takes care of ConfigureNotify so that the
	x,y,width, and height fields of an xlp_win are always up-to-date.

	* xlp_event.c: Fixed buggy registering of MotionNotify events,
	(ie. removed unwanted PointerMotionHintMask).

	* xstroke: Fixed drawing bugs when strokes pass over the control
	window.

2001-09-15  Carl Worth  <cworth@east.isi.edu>

	* xstroke: added logging of recognized and unrecognized strokes to
	/var/log/xstroke/strokes.log and /var/log/xstroke/errors.log
	respectively.

	* xstroke: implemented the Exec action, so strokes can now launch
	programs.

2001-09-14  Carl Worth  <cworth@east.isi.edu>

	* xstroke: added fix to support RandR without leaving garbage on
	the screen.

	* xstroke: set the input_hint to False again, for non-docking
	window managers, (this disappeared about the same time the docking
	hint was added)

	* doc: added missing documentation strokes.

	* doc: started dusting off the document-generation system once
	again.

	* slight improvement to the mode logic: an unrecognized stroke
	will now revert to the previous mode after a mode-shift. This
	assumes that the user thinks of the mode-shift stroke as being
	*part of* the stroke for the character and will repeat the
	mode-shift stroke after the unrecognized character. This
	assumption is true for me. :) We'll see how people like it. Also,
	mode changes now reset all modifiers.

	* alphabet: Lots more alphabet improvements. Punctuation mode is
	in place now, as well as numbers/punctuation in letter mode. The
	only things missing are that +, \, $, and * can not be easily
	generated when in letter mode.

2001-09-05  Carl Worth  <cworth@east.isi.edu>

	* *Lots* of updates to the default alphabet. All lowercase and
	capital letters now work extremely well. Shift, Caps_Lock, and a
	basic number mode are also in place.

	* Fixed some bugs in the handling of Caps_Lock.

	* Updated mode support so that modes may extend other modes. The logic is as follows: Stroke lookup checks the following places returning the first succesfull match: the current mode, each parent mode

	* Moved the mode-handling logic outside of the recognizer and into
	rec.c.

2001-08-29  Carl Worth  <cworth@east.isi.edu>

	* alphabet: Started converting the alphabet to use the new
	full-fledged regular expressions. Many strokes that were
	marginally accurate before, (eg. capital B with intial down-up
	bar, lowercase d, etc.), are now remarkably accurate. So for, I
	have converted everything through the letter L.

	* grid_db_re.c: Switched from the tree-based stroke database to a
	simple list of compiled regular expressions. This is still quite
	fast, uses much less memory, and enables much more robust stroke
	definitions.

	* grid_classify.c: Removed the filtering of short digit
	sequences. This requires stroke specifications to be much more
	forgiving, (the new regex code helps considerably). But, this also
	seems to preserve much useful information.

2001-08-27  Carl Worth  <cworth@east.isi.edu>

	* rec_action_list.c: now stores a single key_action, (press),
	rather than both a press and release. This is to save memory, and
	can easily be changed back if there is a use for a press-only or
	release-only keystroke binding.
	
	* rec_action.c: some tweaks to save memory, (flags in action_data
	structures).
	
	* grid_engine.c: finished the mode support. Both ModeShift and
	ModeLock are now working as stroke specifiers in the alphabet
	file.
	
	* grid_engine.c: Split the grid-based recognizer that was in
	rec_engine_grid.c into several modules, (grid_engine,
	grid_classify, grid_db_tree, grid_parse).
	
	* Imakefile: Switched from raw Makefile to an imake system, (much
	easier to cross-compile an X application this way).

2001-08-16  Carl Worth  <cworth@east.isi.edu>

	* xstroke.c: Enabled modifiers. Extra fancy display for shift and
	caps_lock too.

	* xstroke.c: Added support for various type of bindings in the
	config file, (key, mouse, mode, exec). Only key and mouse are
	working so far. This means middle-click is now possible!! And the
	quick-tap mouse click pass-through is now configurable rather than
	being hard-coded deep in the recognizer.
	
	* xstroke.c: Incorporated the original 3X3 recognizer once
	again. So the new code actually works now --- and with translucent
	strokes! Also, I rewrote the section of code that had originally
	come from libstroke.

2001-08-15  Carl Worth  <cworth@east.isi.edu>

	* brush.c: Fixed brush rendering to give uniform intensity over
	all backgrounds, (currently only works well with a brush that has
	uniform transparency -- ie. no antialiased edges).

2001-08-14  Carl Worth  <cworth@east.isi.edu>

	* bresenham.c: added Bresenham function for continuous strokes

	* xstroke.c: Complete rewrite of all of xstroke. The code should
	actually be rather maintainable now. ;-)

	The new xlp functions abstract a lot of the tedium of Xlib
	programming, (primarily an event dispatcher). Also, xstroke now
	uses the Render extension to draw translucent strokes as well as
	antialiased fonts. Also, this version includes docking capability
	(done at USENIX in July 2001).
	
2001-05-23  Carl Worth  <cworth@east.isi.edu>

	* xstroke.c: Fixed xstroke to work with a border, and added a border.

	* xstroke.c: added evil "always on top" functionality

	* xstroke.c: A smattering of code cleanups

	* xstroke.c: fixed the -geometry command-line option

2001-05-22  Carl Worth  <cworth@east.isi.edu>

	* xstroke.c: Backed out the fscrib, Xt frontend. Back to pure Xlib
	once again!

Release 0.2
-----------
Integrated fsrib front-end with the stroke_rec backend from xstroke.
This gives fstroke, (full-screen xstroke).

Release 0.1
-----------
Initial release of xstroke, (stroke in separate window for recognition).

