2004-05-13 Bill Haneman <billh@gnome.org>

	* gok/gok-spy.c:
	(gok_spy_set_focussed_object): Ref/unref the focussed object
	when storing and replacing; fixes lurking crasher bug.

	* configure.in: Revved to 0.11.3, so we can re-dist with above bug fix.

2004-05-12 Bill Haneman <billh@gnome.org>

	* gok/gok-output.c, gok/create-branching-keyboard.c:
	Silence compiler warnings.

	* gok/gok-keyboard.c:
	(gok_keyboard_about): Unset the 'dialog'
	hint on this window to prevent self-occlusion;
	center the dialog after (since the WM won't).

	* gok/main.c:
	(gok_main_check_sticky_keys, gok_main_check_accessibility):
	Unset the 'dialog' hint on these windows to prevent
	self-occlusion.  Center the dialogs. Fixes #136160.
	(gok_main_update_struts): Set the top strut
	property correctly.  Also use and set the 
	_wm_strut_partial property.  Fixes #140882.
	(gok_main_warn_if_corepointer_mode): New, 
	post a warning dialog if GOK is started in corepointer mode or if
	GOK's access method is changed to a corepointer access mode.
	Fixes #138518.

	* gok/gok-settings-dialog.c:
	(on_button_try): Use gok_main_warn_if_corepointer_mode on apply.

	* gok/gok-button.c:
	(gok_button_enter_notify): Warn about 'corepointer mode' if
	dwell selection occurs via core pointer.
	
2004-05-11  James Henstridge  <james@daa.com.au>

	* configure.in: remove GNOME_PLATFORM_GNOME_2 macro, which is a
	no-op and deprecated.

2004-05-10  David Bolter  <david.bolter@utoronto.ca>

	* Makefile.am: added directed.xml.in
	* directed.xam: new file
	* directed.xml.in: new file
	* gok/gok-chunker.c: numerous edits for directed scanning method
	* gok/gok-chunker.h: new function "gok_chunker_highlight_chunk_with_key"
	* gok/gok-keyboard.c: added logging, and comments.
	* gok/gok-scanner.c: removed cruft
	* gok/gok-spy.c: added logging
	* gok/main.c: added condition for highlighting center key
	
	This work provides an implementation of 5 switch directed scanning, resolving
	RFE #135838.

2004-05-08  Bill Haneman <billh@gnome.org>

	* gok/gok-keyboard.c:
	(gok_keyboard_add_compose_aux_keys): 
	New, refactored from gok_keyboard_from_xkb.
	Put the 'Back' key in the first row, if we're using a
	column for the aux keys.  Add the 'Hide' aux key.
	(gok_keyboard_add_keys_from_xkb_geom): Support either 
	putting aux keys on bottom row or in first column, via above
	method.
	(gok_keyboard_get_cell_width): New, returns the actually-displayed
	cell width for a keyboard, which may differ from the gok_data
	gconf value, for instance when keyboards are in 'fill' or 'expand'
	mode and occupy the whole screen width.
	(gok_keyboard_get_section_row, gok_keyboard_get_section_column):
	Removed some #ifdef'd out, unused, code.
	
	* gok/gok-key.c:
	(gok_key_calculate_font_size): Call gok_keyboard_get_cell_width
	instead of always using the gok_data key width.
	Fix for bug #141240.

	* gok/gok-keyboard.h:
	(gok_keyboard_get_cell_width): Declare new method (details above).

	* po/POTFILES.in:
	Add gok/gok-spy.c, since we added three localizable strings
	in HEAD.
	
2004-05-07  Bill Haneman <billh@gnome.org>
	
	* gok/gok-spy.c:
	* gok/gok-keyboard.c:
	Mark some strings for translation, and add translator comments.
	Un-mark the copyright string, we should not in general translate
	copyright statements (to the best of my knowledge).

	* gok/gok-spy.c:
	(gok_spy_is_ui): Include ROLE_SCROLL_BAR objects in the UI Grab.
	(gok_spy_append_node): Use 'Vertical Scrollbar' and 'Horizontal
	Scrollbar' for scrollbars if no better names can be obtained.
	Fixes bug #137124.
	
	
2004-05-06  Bill Haneman <billh@gnome.org>

	* gok/gok-page-keysizespace.c:
	(gok_settings_page_keysizespace_refresh):
	Move the setting of the "Dock" checkbutton until
	after the "dock top/bottom" checkbuttons have been
	properly initialized; fixes odd bug which caused Dock settings
	to be reverted at runtime.
	
	* gok/gok-keyboard.c:
	(gok_style_if_enabled): Check for SPI_STATE_SENSITIVE
	instead of SPI_STATE_ENABLED; this is because SENSITIVE 
	has the semantics we really want, ENABLED can be false for
	a few actionable elements such as radiobuttons which are in 
	the "indeterminate" state (i.e. no radiobutton in the group is
	toggled yet).  Fix for bug #136877.
	
2004-05-06  Padraig O'Briain <padraig.obriain@sun.com>

	* gok/main.c (gok_main_read_keyboards_from_dir): Do not call 
	g_list_free on list returned by gnome_i18n_get_language_list>
	Fix for bug #141996 (I hope).

2004-05-06  Bill Haneman <billh@gnome.org>

	* gok/gok-keyboard.c:
	(gok_keyboard_about): Move an error message inside an if, to 
	avoid referencing a string which we've freed.
	
2004-04-29  Bill Haneman <billh@gnome.org>

	Fix for bug #140929 and  RFE 109181#.

	* configure.in: Depend on gnome-speech-1.0.

	* gok-with-references.schemas.m4:
	Revised description of 'keyboard_directory';
	added aux_keyboard_directory key, default, and desc.
	Added compose_kbd_type and custom_compose_kbd keys.
	
	* gok/Makefile.am:
	Added gok-page-keyboard.[ch] and gok-speech.[ch] files.

	* gok/callbacks:
	(on_SpeakLabelCheckButton_toggled): New, 
	sets speech property on a GokFeedback.
	(on_aux_keyboard_dir_entry_changed): New,
	set the user/custom keyboards directory.
	
	* gok/gok-data.c:
	(gok_data_set_name_accessmethod_internal): Made static.
	(gok_data_get_aux_keyboard_directory, gok_data_set_aux...): New.

	* gok/gok-data.h:
	(GokComposeType): New enum.

	* gok/gok-feedback.c:
	Add speech boolean to feedback properties.
	(gok_feedback_open): init speech property.
	(gok_feedback_perform_effect): Speak the key label
	if the feedback includes the 'speech' property.

	* gok/gok-gconf-keys.h:
	Add /apps/gok/aux_keyboard_directory, GOK_GCONF_FEEDBACK_SPEECH.

	* gok/gok-key.c:
	(gok_key_initialize): Use "branchCompose" for compose keyboards,
	instead of just "branch".  Add "branchEditText" for the "Text
	Manipulation" keyboard.

	* gok/gok-keyboard.c:
	Removed some TEST_GOK_FREQENCY... #ifdefs.
	(gok_keyboard_get_compose): New, returns the appropriate 
	keyboard to gok_data_get_compose_keyboard_type().
	(gok_keyboard_output_key): Handle BRANCHCOMPOSE differently,
	since its semantics are now assigned to BRANCHEDIT.

	* gok/gok-page-feedbacks.c:
	Initialize and handle the 'SpeakLabelCheckButton' for 
	speech feedback.

	* gok/gok-page-keysizespace.c:
	Initialize and handle the Dock and Fill buttons.

	* gok/gok-page-wordcomplete.c:
	Handle DictionaryPathEntry.

	* gok/gok-settings-dialog.c:
	Handle gok-page-keyboard.

	* gok/main.c:
	(gok_append_keyboard_from_file): New, refactored
	adding of keyboards from XML files.
	(gok_main_create_compose_keyboards): New, part of refactor.
	(gok_main_read_keyboards): Refactored for better structure.
	Call above methods.
	(gok_main_read_keyboards_from_dir): Refactored.
	
2004-04-29  Bill Haneman <billh@gnome.org>

	Fix for bug #136454.

	* gok/gok.glade2: Made the Compose tab visible.
	Connected signal handlers to the compose-keyboard
	type radiobuttons.

	* gok/callbacks.c:
	(on_xkb_compose_keyboard_radiobutton_toggled):
	(on_alpha_compose_keyboard_radiobutton_toggled):
	(on_freq_compose_keyboard_radiobutton_toggled):
	(on_file_compose_keyboard_radiobutton_toggled):
	New, set compose keyboard type when changed.
	(on_compose_keyboard_file_entry_changed):
	New, read the compose keyboard file location when non-empty
	and user-defined keyboard toggle is active.

	* gok/gok-keyboard.c:

	* gok/gok-data.c:	
	(gok_data_compose_type_from_string): New.
	Read compose_keyboard_type from gconf.
	(gok_data_set_use_xkb_kbd): Call gok_main_set_wm_dock when changing.
	(gok_data_set_expand): Re-display the current keyboard when
	changing.
	(gok_data_compose_keyboard_type_string): 
	(gok_data_compose_type_from_string): New, useful for
	gconf-string versus enum conversions.
	(gok_data_get_compose_keyboard_type): New.
	(gok_data_get_custom_compose_filename,gok_data_set_custom_compose_filename): 
	New.
	(gok_data_set_compose_keyboard_type, gok_data_get_compose_keyboard_type):
	New.
	
	* gok/gok-page-compose.c, gok-page-compose.h:
	New files, initialize the gok settings dialog Compose page.
	
2004-04-29  Bill Haneman <billh@gnome.org>

	Fix for bug #118222.

	* gok/gok.glade2: Made the dock and fill UI widgets visible.

	* gok/gok-page-keysizespace.c:
	(gok_settings_page_keysize_refresh):
	Refresh/init the Dock and Fill UI elements to match gconf/gok-data.

	* gok/callbacks.c:
	(on_dock_checkbutton_toggled, on_fill_checkbutton_toggled):
	New, signal handlers for Dock/Fill UI elements.
	(on_dock_top_radiobutton_toggled, on_dock_bottom_radiobutton_toggled):
	New, set the DOCK_TYPE when changed.

	* gok/gok-data.c:
	(gok_data_set_dock_type): Call gok_main_wm_dock
	as appropriate, instead of requiring caller to call both methods.

2004-04-23  Colin Walters  <walters@redhat.com>

	* gok/main.c (gok_main_read_keyboards_from_dir): Set langlist
	to NULL instead of a noop test.
	
2004-04-23  Bill Haneman <billh@gnome.org>

	Fix for bug #132132.
	
	* gok-with-references.schemas.m4, gok-with-references.schemas.in:
	Added schema data for /apps/gok/valuator_sensitivity.

	* gok/gok-gconf.h, gok/gok-gconf.c:
	(gok_gconf_set_double, gok_gconf_get_double): New.
	Does what it says on the tin.

	* gok/gok-gconf-keys.h: Added key for valuator sensitivity.

	* gok/callbacks.c:
	(gok_data_set_valuator_sensitivity, gok_data_get_valuator_sensitivity):
	Revised to use the gconf key and persist values.
	(on_ValuatorSensitivityScale_value_changed): Handler for 
	value-changes on the sensitivity slider in the settings dialog.

	* gok/gok-page-actions.c:
	(gok_page_actions_initialize): Initialize the valuator 
	sensitivity slider.

	* gok/gok.glade2:
	Make the valuator sensitivity slider visible, and set its
	accessible name.

2004-04-22  Bill Haneman <billh@gnome.org>

	* gok/gok-keyboard.c:
	(gok_keyboard_add_keys_from_xkb_geom):
	Added branch key to numeric GOK keyboard.
	Completes fix for bug #136482.

2004-04-22  Bill Haneman <billh@gnome.org>

	* gok/main.c:
	(gok_main_read_keyboards_from_dir): Fix for crasher
	bug #140851, which bites if non-XKB keyboard option is
	chosen from gconf, or if the XKB keyboard cannot be created.

	
2004-04-22  Bill Haneman <billh@gnome.org>

	Fix for bug #132757, and (dup) #138751.
	
	* valuator.kbd.in:
	Added a GOK keyboard which allows direct control of sliders
	and other valuators.

	* gok/gok-keyboard.c:
	(gok_keyboard_branch_gui_valuator):
	Obtain the valuator keyboard, set its source accessible,
	and branch to it when actioning a valuator.
	(gok_keyboard_round_epsilon): Convenience function for
	getting a "nice round number" for a value increment, given a range.
	(gok_keyboard_modify_value): New, this method actually changes the
	value pointed to by a valuator keyboard, given a valuator key
	with commands like GOK_VALUE_LESS, GOK_VALUE_MIN, etc.
	(gok_keyboard_output_key): Handle the KEYTYPE_VALUATOR case.
	(gok_keyboard_parse_value_op): New, returns an enumerated value from
	the "command" string of a GOK XML key node.

	* gok/gok-keyboard.h:
	New enum, GokKeyboardValueOp.

	* gok/gok-key.h:
	Added KEYTYPE_VALUATOR.
	
	* gok/gok-key.c:
	(gok_key_initialize):  Support key type 'valuator'.

	* value-*.png: Added image files for valuator keyboard.

	* Makefile.am:
	Added valuator.kbd.in., and value-min.png, etc.
	
2004-04-21  Bill Haneman <billh@gnome.org>

	* numberpad.kbd.in:
	Added a GOK keyboard which provides numberpad keys
	plus a few other navigation keys.  Provides feature
	desired in RFE #136482.
	
2004-04-21  Ben Konrath  <ben@bagu.org> (committed by billh)

	* gok/gok-page-accessmethod.c: 
	(gok_page_accessmethod_initialize):
	update the access method controls properly
	alternate fix for bug #134147

2004-04-21  Bill Haneman <billh@gnome.org>

	* gok.glade2: 
	UI Enhancements/additions in support of new features.
	NOTE: Not all UI components are connected GOK functions
	yet, so their visibility is set to FALSE pending
	the hookup of the actual features.
	
	* gok/gok-page-wordcomplete.c:
	Use the new names/type for the DictionaryPathEntry
	widget.
	
2004-04-21  Ben Konrath  <ben@bagu.org> [committed by billh]
 
	* configure.in:
	added requirement for libglade
	* gok.glade2:
	added buttons to bottom of the settings dialog, buttons for
	the key size preview and various changes that allow libglade 
	to work properly.
	* Makefile.am:
	install the glade file
	* gok/Makefile.am:
	removed support.[ch], interface.[ch], install gok-glade-helpers.[ch]
	add -export-dynamic ldflag (required for libglade)
	* gok/callbacks.h:
	* gok/callbacks.c: 
	added callbacks for the new settings dialog buttons
	* gok/gok-editor.c:
	changed libglade
	* gok/gok-page-accessmethod.h:
	* gok/gok-page-accessmethod.c:
	changed to libglade
	* gok/gok-page-actions.h:
	* gok/gok-page-actions.c: 
	changed to libglade
	* gok/gok-page-feedbacks.h:
	* gok/gok-page-feedbacks.c:
	changed to libglade
	* gok/gok-page-keysizespace.h:
	* gok/gok-page-keysizespace.c:
	changed to libglade
	* gok/gok-page-wordcomplete.h:
	* gok/gok-page-wordcomplete.c: 
	changed to libglade
	* gok/gok-settings-dialog.h:
	* gok/gok-settings-dialog.c: 
	changed to libglade
	* po/POTFILES.in:
	removed support.c interface.h and updated all the po files 
	
2004-04-16  Bill Haneman <billh@gnome.org>

	* gok-key.c:
	(gok_key_get_label): Initialize 'type' to XkbAlphabeticIndex,
	so that the most appropriate level is returned for 
	keysyms that don't have current keycodes in the X keymap.
	Do this for all output types, instead of just falling through for
	non-keysym keys [necessary for complex text branching kbds].

2004-04-14  David Bolter  <david.bolter@utoronto.ca>

	* help/gok/C/Makefile.am: added entity entries for extra xml files
	* help/gok/C/gok.xml: converted to new help template
	* help/gok/C/keyboards.xml: new
	* help/gok/C/legal.xml: new
	* help/gok/C/prefs.xml: new
	
	Fix for bug #140051

2004-04-13  David Bolter  <david.bolter@utoronto.ca>

	* configure.in: revved to 0.11.0 for "unstable" development,
	 gnome-2-6 branch created for bug fixes etc.

2004-04-09  Guntupalli Karunakar  <karunakar@freedomink.org>

        * configure.in: Added "gu" (Gujarati) to ALL_LINGUAS.

2004-04-08  David Bolter  <david.bolter@utoronto.ca>

	contribution: Simon Bates <simon.bates@utoronto.ca>

	* Makefile.am: 
	  gok.schemas: This rule now depends on Makefile (instead of FORCE)
	  to resolve problem building rpms (because the rpm build process 
	  installs to a temporary location).
	  
	  Fixes bug #139495

2004-04-02  David Bolter  <david.bolter@utoronto.ca>

	Thanks Heikki Tauriainen <heikki.tauriainen@hut.fi>

	* gok/gok-input.c: added definition of `gok_input_types'
	* gok/gok-input.h: declared `gok_input_types' extern
	* gok/gok-keyboard.c: added definition of 
	`gok_xkb_base_event_type'
	* gok/gok-keyboard.h: declared `gok_xkb_base_event_type' 
	extern
	
	Fixes bug #136732 (compiling with -fdata-section)

2004-04-01  Bill Haneman <billh@gnome.org>

	Fixes for #117568, #138683, #129450, #136065.
	
	* gok/gok.rc:
	Use our "no engine" style only for GokButtons, 
	not GtkButtons.  Fixes bug #138683.
	
	* gok/gok-keyboard.c:
	(gok_keyboard_branch_gui_selectaction):
	If parent doesn't implement AccessibleSelection, or
	if the node in question cannot be selected (singly),
	check for AccessibleTable and select the current row instead.
	Also grab focus - which is a workaround for some activation
	issues in tables.
	(gok_keyboard_branch_byKey): Handle BRANCHGUITABLE case.
	(gok_keyboard_update_dynamic): Handle SEARCH_TABLE_ROWS case,
	calling gok_spy_get_table_row_nodes.  Also, in fallback case,
	check for AccessibleTable interface as well as selection, 
	action, etc.
	(gok_keyboard_branch_gui_selectaction): Use table interface,
	selecting relevant table row, if the pure 'selectChild' 
	call fails.

	* configure.in: 
	Revved to gok-0.10.2.
	Check for cspi-1.0 >= 1.5.0 and provide corresponding AC_DEFINE.
	This makes possible a more elegant fix for the API-dependent
	portion of #117568.
	
	* gok/gok-keyboard.c:
	#define missing AccessibleTable 
	declarations from older versions of spi.h.

	* gok/gok-spy.c:
	(gok_spy_node_match): Handle GOK_SPY_SEARCH_TABLE_ROWS case.
	(gok_spy_concatenate_child_names): New; create a label consisting
	of all printable names for table row items, for use on the table
	row keys returned by gok_spy_get_table_row_nodes.
	(gok_spy_get_table_row_nodes): return a list of nodes
	corresponding to selectable, visible table rows, and any
	row/column headers that are available.

	* gok/gok-spy.h;
	Added GOK_SPY_SEARCH_TABLE_ROWS to enum.
	
	* gok/gok-key.h:
	Added KEYTYPE_BRANCHGUITABLE, since tables need special handling.

	* gok/gok-table-ops.[ch]: Removed
	since above changes make these files unnecessary.
	
2004-03-29  Bill Haneman <billh@gnome.org>

	* gok/gok-keyboard.c:
	(gok_keyboard_branch_gui_selectaction):
	If parent doesn't implement AccessibleSelection, or
	if the node in question cannot be selected (singly),
	check for AccessibleTable and select the current row instead.
	Fixes bug #117568.
	
2004-03-29  Bill Haneman <billh@gnome.org>

	* gok/gok-keyboard.c:
	(gok_keyboard_branch_gui_selectaction):
	If parent doesn't implement AccessibleSelection, or
	if the node in question cannot be selected (singly),
	check for AccessibleTable and select the current row instead.
	Fixes bug #117568.
	
2004-03-29  Bill Haneman <billh@gnome.org>

	* gok/gok-table-ops.[hc]:
	New files, provide table operations in support
	of bug #117568 and similar dups.
	We can't work correctly on tree/table items
	without support for these at-spi table APIs.

	* gok/Makefile.am:
	Added gok-table-ops.[hc].

2004-03-29  Ben Konrath <ben@bagu.org>

	* gok/gok-page-accessmethod.c:
	(gok_page_accessmethod_change_controls):
	Cleanup some redundant code.
	[committed by Billh]

2004-03-29  Bill Haneman <billh@gnome.org>

	* configure.in:
	Upgraded libbonobo-2 dependency to 2.5.1
	[thanks to Leonardo Boshell]
	
	* gok/gok-keyboard.c:
	(gok_keyboard_add_keys_from_charstrings): 
	Fix broken use of groups + levels in alphabetic keyboards.
	Add Shift/Level keys and Tab key to alpha keyboards.
	(gok_keyboard_compose_create): Pass in a KeyboardLayouts argument
	so that the layout type of the created compose keyboard may be
	specified.

	* gok/gok-key.c:
	(gok_key_get_label): 
	Calculate level for non-KEYCODE/KEYSYM output keys.
	Fixes bug #133545.

	* gok/gok-output.c:
	(gok_output_update_predictions): Fix very broken KEYSTRING word completion input.

	* gok/gok-output.h: Add OUTPUT_INVALID.
	
2004-03-29  David Bolter  <david.bolter@utoronto.ca>

	on behalf of: d.binderman@virgin.net

	* gok/gok-keyslotter.c: 
	(gok_keyslotter_on), 
	(gok_keyslotter_change_number_predictions): fixed '='/'=='
	misuse.
	* gok/gok-page-actions.c: 
	(gok_page_actions_initialize): fixed possible return of unused
	variable.

2004-03-28  Sayamindu Dasgupta <sayamindu@clai.net>

	* configure.in: Added bn to ALL_LINGUAS

2004-03-25  Andras Timar  <timar@gnome.org>

	* configure.in: Added hu to ALL_LINGUAS

2004-03-24  Bill Haneman <billh@gnome.org>

	* gok/gok-spy.c:
	(gok_gok_search_component_list):
	Search toolbar children recursively if they are not
	"toolbar-item-like"; finds things like menus
	and text fields inside toolbars, etc.
	Fix for bug #135314; makes GOK recognize mozilla
	menus and toolbars.
	
2004-03-22  Bill Haneman <billh@gnome.org>

	* configure.in: Revved to 0.10.0.  This is the gnome 2.6.0
	release of GOK.

2004-03-22  Guntupalli Karunakar  <karunakar@freedomink.org>

        * configure.in: Added "pa" (Punjabi) to ALL_LINGUAS.

2004-03-21  Gareth Owen  <gowen72@yahoo.com>

	* configure.in: Added en_GB to ALL_LINGUAS

2004-03-15  David Bolter  <david.bolter@utoronto.ca>

	* gok/gok-page-actions.c:
	(gok_page_actions_set_is_corepointer): Prevent override
	of dwell action type when user sets extended device.
	Fix for #136756

2004-03-15  Bill Haneman <billh@gnome.org>

	* configure.in: Revved to 0.9.11.
	
2004-03-11  Bill Haneman <billh@gnome.org>

	* gok/gok-keyboard.c:
	(gok_keyboard_branch_gui_selectaction):
	Fix codepath that can result in double-unrefs.
	Fix for #136764.
	
2004-03-11  Bill Haneman <billh@gnome.org>

	* gok/gok-output.c:
	(gok_output_get_keycode): Handle KEYSYM outputs
	via XKeysymToKeycode.

	* qwerty.kbd:
	replace incorrect 'level="2"' attribute with 
	'level="1"'.

	Fixes bug #136509.
	
2004-03-08  Bill Haneman <billh@gnome.org>

	* configure.in, NEWS, README:
	Revved to 0.9.10.  This is the gnome-2.6 beta2 version of GOK.
	
2004-03-07  Bill Haneman <billh@gnome.org>

	* help/gok/C/gok.xml:
	Changed references to "Try" key into references to
	"Apply" key, to reflect the actual UI.

	* gok/gok-spy.c:
	(gok_spy_object_state_listener): Fix C99ism.
	Only queue update on "add" events for containers, since
	the "remove" events are already handled by object state-changes;
	Yields 2x performance improvement for OpenOffice spreadsheets and HTML
	containers.
	
	"Valgrind" fixes...
	* gok/gok-key.c:
	(gok_key_delete): Fix improper free of internal
	GokKey internal pointer after free of GokKey struct.

	* gok/gok-windowlister.c:
	(gok_windowlister_show): Fixed improper memory reference
	in freed GokKey.

	* gok/gok-action.c:
	(gok_action_new): Initialize pKeyAveragingBackup member.
	
2004-03-06  Bill Haneman <billh@gnome.org>

	* gok/gok-utf8-word-complete.c:
	Fixed C99ism; thanks to Danilo Segan for catching.

	* gok/gok-spy-priv.h:
	Added GOKSPY_CONTAINER_EVENT to enum.

	* gok/gok-spy.c:
	(gok_spy_is_primary_container): Simple test
	based on container role.
	(gok_spy_open): Include object:child-changed events
	among those being monitored.
	(gok_spy_check_queues): Update UI keyboard on
	GOKSPY_CONTAINER_EVENT.
	(gok_spy_defunctness_listener): React to 
	defunctness events on primary containers as well
	as key-target objects.
	(gok_spy_object_state_listener): Handle child-changed events
	as well as state events.
	(gok_spy_append_node): Fixed C99-ism.

	Fix for bug #135635.
	
2004-03-06  Bill Haneman <billh@gnome.org>

	* gok/gok-spy.c:
	(gok_spy_search_component_list): 
	Search for EditableText objects even if keyboard_flags.data.gui is
	FALSE, as long as keyboard_flags.data.editable_text is TRUE.
	Fix for bug #136326.
	(gok_spy_set_context_menu_accessible): Kill leftover g_message.
	(gok_spy_is_ui): Return 'FALSE' for actionable menu-type things.

	* gok/gok-keyboard.c:
	(gok_keyboard_update_dynamic_keys): 
	Fix error in boolean logic, using bitwise-OR instead of bitwise-AND to clear bits.
	
2004-03-05  Bill Haneman <billh@gnome.org>

	* Makefile.am:
	Only create <prefix>/share/gok if it does not exist.
	Completes fix for bug #134954.

2004-03-05  Padraig O'Briain <padraig.obriain@sun.com>

	* docs/reference/gok-overrides.txt: Add new file.

2004-03-05  Padraig O'Briain <padraig.obriain@sun.com>

	* Makefile.am: Add xmldocs.make to EXTRA_DIST.
	Add call to mkdir in install-data-local so make distcheck works.
	All uninstall-local and DISTCLEANFILES so make distcheck works.

	* autogen.sh: Add REQUIRED_AUTOMAKE_VERSION=1.7 and 
	USE_COMMON_DOC_BULID=yes

	* configure.in: Use GTK_DOC_CHECK([1.0])

	* docs/reference/Makefile.am: Use common gtk-doc.make

	* help/Makefile.am: Remove reference to xmldocs.make

	* help/gok/C/Makefile.am: Update for changed location of xmldocs.make

	* omf-install/Makefile.am: Add call to rm $(scrollkeeper_localstate_dir)

	This fixes bug #134954.

2004-03-05  Bill Haneman <billh@gnome.org>

	Fixees for bug #129609.
	* gok/gok-keyboard.c:
	(gok_keyboard_update_dynamic): Support SEARCH_ACTIONABLE.
	Allow generic/unknown UI objects to be SELECTABLE but not
	ENABLED (if they are selections rather than actions).
	Fix support of compound objects.
	(gok_keyboard_get_actionable_child_count): Convenience method.
	(gok_keyboard_do_leaf_action): Enable activation of singleton 
	active children.
	(gok_keyboard_branch_gui_actions):  Handle compound actionable
	objects, and actionable "selection" objects, properly.
	
	* gok/gok-spy.h, gok/gok-spy.c:
	GOK_SPY_SEARCH_ACTIONABLE: GokSpySearchType enum.
	(gok_spy_get_actionable_descendants): Method for handling
	actionable descendants of actionable objects - required to
	properly support panel applets.
	(gok_spy_append_node): scavenge name from singleton named child,
	if it exists and there is no other source of 'name' info.
	
2004-03-05  Bill Haneman <billh@gnome.org>

	* gok/gok-settings-dialog.c:
	(gok_settingsdialog_open): Use GTK_STOCK_APPLY 
	instead of GTK_STOCK_JUMP_TO for the 'Try' button,
	and don't set the label on a stock button.
	Fix for bug #135926.  Thanks to Padraig for the diagnosis. 
	[actually a workaround for a gtk+ bug]
	
2004-03-01  Bill Haneman <billh@gnome.org>

	* configure.in: Revved to 0.9.9.

	* NEWS, README: Updated.
	
2004-03-01  Bill Haneman <billh@gnome.org>

	Fixes for bug #135833.
	* gok/main.c:
	(gok_sig_handler): Restart on SEGV if logging is not enabled.
	Don't try to close GOK if there's already been a SEGV.
	(gok_main_close): Don't call gok_settingsdialog_close() since 
	that method is not strictly necessary, and it seems to have some
	segv bugs.
	* gok/gok-spy.c:
	(gok_spy_close): Free the nodes before freeing the queue, etc.

2004-03-01  David Bolter  <david.bolter@utoronto.ca>

	* gok/gok-keyboard.c: 
	(gok_keyboard_about): adjusted the gok credit link

2004-02-27  Bill Haneman <billh@gnome.org>

	* gok/gok-spy.c:
	(gok_spy_get_toolbar_item): Though we want to detect
	toolbar-items that aren't direct children of ROLE_TOOLBAR
	containers, we must allow them.
	
2004-02-27  Bill Haneman <billh@gnome.org>

	* gok/gok-key.h:
	Add KEYTYPE_BRANCHCOMBO, since comboboxes need special treatment.
	
	* gok/gok-spy.h:
	(gok_spy_append_node): expose.
	
	* gok/gok-spy.c:
	(gok_spy_get_editable): New, returns first editable child.
	(gok_spy_node_match):  Handle SEARCH_COMBO case.

	* gok/gok-keyboard.c:
	(gok_keyboard_update_dynamic): Handle COMBO case,
	adding a node for the (first) editable child if present.
	(gok_keyboard_branch_byKey): Handle COMBO case, passing
	GOK_SPY_SEARCH_COMBO to gok_keyboard_branch_gui().
	(gok_keyboard_output_selectedkey): Handle COMBO case.
	
2004-02-27  Bill Haneman <billh@gnome.org>

	* gok/gok-key.c: Fix for bug #134349.
	(gok_key_wordcomplete_output): Added a comment.
	Decompose 'word_part' to UTF-8 canonical before 
	checking it against the completion-key label.
	Delete last_wordcomplete_output every time, not
	just when we're creating a new one.

	* gok/gok-utf8-word-complete.c:
	(WordPredictionCaseType): Added WORD_CASE_MIXED.
	(utf8_wordcomplete_predict_string): post-process the
	predictions to match the case of the input; this
	un-breaks word-completion when uppercase or title-case
	letters are used.
	(utf8_determine_case): Implemented this.
	(utf8_case_convert_char): Made this routine functional.
	(utf8_case_convert_string): Fixed this one too; check
	validity of input, make it work with gchar** prediction
	lists (as used by the the calling routines).
	Fixed switch statements.
	
2004-02-26  Bill Haneman <billh@gnome.org>

	* gok/callbacks.c:
	(on_window1_button_press_event): Ignore GokButton press
	events if GOK is using corepointer-1 (aka leftmouse)
	for its current scanning method.  Fixes bug #134218.

2004-02-25  David Bolter  <david.bolter@utoronto.ca>

	* gok/gok-spy.c: 
	(gok_spy_append_node): added break from infinite while loop when
	climbing the parent tree looking for a name.
	Fixes bug #134631

2004-02-24  Bill Haneman <billh@gnome.org>

	* configure.in, README, NEWS:
	Revved to 0.9.8.
	
	* gok/main.c:
	(gok_main_read_keyboards_from_dir):
	Create the alpha and alpha-freq keyboards at startup time
	[they are not exposed to the user unless the custom .kbd files
	have been created.]

	* gok/callbacks.c:
	(on_window1_size_allocate):
	Replace a commented-out fprintf with a gok_log call, 
	printing out size allocation on resize.

	* gok/gok-keyboard.c:
	(gok_keyboard_position_keys): 
	Assign key width locally (but don't reset gconf) from
	window width if keyboard is in 'EXPAND' mode.
	Fixes bug #133504.

2004-02-22  Christian Rose  <menthos@menthos.com>

	* configure.in: Added "en_CA" to ALL_LINGUAS.

2004-02-19  Kjartan Maraas  <kmaraas@gnome.org>

	* gok/main.c: Mark two strings for translation.

2004-02-18  Bill Haneman <billh@gnome.org>

	* gok/gok-spy.c:
	(gok_spy_append_node): Fix logic error in
	assignment of pName when searching ancestors.
	Fix for bug #134726.
	
2004-02-16  Bill Haneman <billh@gnome.org>

	* configure.in:
	Version 0.9.7 - redist to make sure GNOME_Gok.server.in.in
	is included in tarfile (see commit from 02-09, somehow this got lost).

2004-02-17 Bill Haneman <billh@gnome.org>

	* docs/gok-docs.sgml:
	Removed reference to entity 'gok-gconf-keys' in order to build.
	Workaround for bug #134548.


2004-02-13 Ben Konrath <ben.konrath@utoronto.ca>

	* gok/gok-page-accessmethod.c: (gok_page_accessmethod_initialize):
	Force Automatic Scanning to draw its wigets properly. Fixes bug #134147, #126437

2004-02-12 Erwann Chenede - <erwann.chenede@sun.com>

	* gok/main.c (gok_main_open):
	 removed function gok_main_stop_theme_change_notify 
	* gok.rc : 
	 assigned default engine to all GokButton (fix #109403).

2004-02-11  Bill Haneman <billh@gnome.org>

        Compile cleanly with -Werror and -ansi.
	
	Fix for bug #134103.
	* gok/gok-output.c:
	Check for #define of XK_dead_hook and XK_dead_horn.

	* gok/gok-windowlister.c:
	* gok/wordcomplete.c:
	* gok/gok-utf8-wordcompete.c:
	* gok/switchapi.c:
	Changed strdup to g_strdup, etc. to 
	silence some compiler warnings since we aren't including string.h.
	
2004-02-11  Padraig O'Briain <padraig.obriain@sun.com>

	* gok/Makefile.am: Update so that GNOME_Gok.server.in.in is in dist.

	* gok/gok-key.c, gok/gok-keyboard.c, gok/gok-spy.c : Fix C99ism

2004-02-11  Bill Haneman <billh@gnome.org>

	Fix for bug 134040.
	
	* gok/gok-modifier-keymasks.c:
	Added missing KEYMASK_MOD5 (AltGr on many keyboards).

	* gok/gok-output.c:
	(gok_output_send_to_system): Use XKB to
	handle groups and levels correctly - allows
	correct synthesis of keycodes with shift levels > 1.
	Also handled some code to store deadkeys and pass their
	postfix unicode equivalents with the next keystroke.
	(gok_output_unichar_postfix_from_deadkey): New, 
	support for above.
	(gok_output_unichar_from_keysym): Correct and simplify
	to use keysym2ucs.
	
	* gok/gok-spy.c:
	Remove old #ifdef which was a hack for compat with 
	very old versions of at-spi.

	* gok/gok-word-complete.c:
	(gok_wordcomplete_unichar_is_combine): Check for 
	UNICODE_NON_SPACING_MARK as well as COMBINING_MARK.

	* gok/gok-key.h:
	(gok_key_get_xkb_type_index, gok_key_level_for_type):
	Expose these methods since they are now needed by
	gok-output.c.	
	
2004-02-10  Bill Haneman <billh@gnome.org>

	* gok/gok-key.c:
	(gok_key_label_from_keysym_string):
	Don't remove underbar character if it's the only one in the
	key name string. Fix for bug #133992.

	* gok/gok-modifier.c:
	(gok_modifier_mask_for_name): Listen for and
	respond to changes in MOD5; fixes bug #133999.
	
2004-02-09  Bill Haneman <billh@gnome.org>

	* automatic-scanning.xml.in, direct-selection.xml.in, dwell-selection-xml.in:
	* inverse-scanning.xml.in, singlekey-automatic-scanning.xml.in, singlekey-inverse-scanning.xml.in:
	Marked UI display strings for translation.
	
	* configure.in: Revved to version 0.9.6.

	* README: Updated for 0.9.6.

	* gok/gok-key.c:
	Don't g_free the window data from gok-windowlister
	if key is TYPE_WINDOW.  Fixes bug #133892.

	* gok/gok-keyboard.c:
	Test for Accessible_isAction before checking Accessible_isValue,
	since some apps such as Java and StarOffice expose Action on menu items!

	* Makefile.am:
	Add GNOME_Gok.server.in.in to EXTRA_DIST.
	
2004-02-09 Erwann Chenede - <erwann.chenede@sun.com>

       * gok/main.c (gok_main_open):
	added a new function gok_main_stop_theme_change_notify to 
	bypass the gtk theme settings and monitoring (fix #109403).

2004-02-08  David Bolter  <david.bolter@utoronto.ca>

	* gok/gok-keyboard.c: added working code for upper left fequency based
	dynamic key layout.  this can now be further extended and tested towards
	a complete solution for bug #123284
	
2004-02-05  Bill Haneman <billh@gnome.org>

	* gok.glade2:
	Added some LABELLED_BY relations and updated some accessible names
	in the GOK settings dialog.

	* gok/gok-page-accessmethod:
	(gok_page_accessmethod_draw_controls): Set the accessible-name on Access Method combos.

2004-02-05  Balamurali Viswanathan <balamurali.viswanathan@wipro.com>

	* gok/Makefile.am: create and install GNOME_Gok.server file

	* gok/main.c (gok_main_open): Invoke only one instance of gok --login
	fixes bug #125155

	* gok/GNOME_Gok.server.in.in: Added this file

2004-02-05  Bill Haneman <billh@gnome.org>

	* gok/gok-key.c:
	(gok_key_lookup_shorter_label): Added some code to
	deal better with 'deadkeys' on keyboards.

	* gok/gok-page-actions.c:
	(gok_page_actions_initialize): Fix for bug #121907, initialize
	the actions combobox entry correctly so that the event source type
	radiobutton is consistent with the action.

	* gok/gok-page-accessmethod.c:
	(gok_page_accessmethod_initialize): Fix for bug #126437,
	init access method page tab correctly.
	
2004-02-05  Padraig O'Briain <padraig.obriain@sun.com>

	* gok/gok-spy.c (gok_spy_worth_searching): Fix compile problem.
	Fixes bug #133484.
	
2004-02-04  Bill Haneman <billh@gnome.org>

	* gok/gok-windowlister.c:
	(gok_windowlister_show): Allow for possible failure of
	wnck_window_get_name() call to return a non-NULL string.

	* gok/gok-spy.c:
	(gok_spy_accessible_ref, gok_spy_accessible_unref):
	Revert David's recent commit, since it subverts lifecycle
	management of at-spi objects and causes GOK to SEGV if it's
	not logging.
	(gok_spy_search_component_list):
	Add a limit on the number of children which may be enumerated;
	this is a bit of a hack but prevents GOK from becoming
	unresponsive for long periods when searching long tables.
	Long-term fix is better handling of tables in general.

	* qwerty.kbd:
	Fixed a bug in the XML definition for a shift key.

	* gok/gok-modifier.c:
	Allow for modifier name to (accidentally) be NULL.

2004-02-04  Bill Haneman <billh@gnome.org>

	* gok/gok-key.h:
	(GokKeyLabel): Store level and group now, not modifiers and
	mod_mask. For bug #132757 and fix for bug #132853.

	* gok/gok-key.c:
	Changed some char declarations to gchar, for consistency when
	doing utf8/byte mixed operations.
	(gok_key_print_utf8_debug): New, used only for debugging.
	(gok_key_get_xkb_type_index): Reworked to work correctly with
	multi-group keyboards, and to include a compensation for
	alphabetic types to account for the 'preservation' of the
	LockMask, which is accounted for by Xlib string conversion rather
	than the XKB level calculation.
	(gok_key_label_from_keycode):  Reworked to take a level/group
	combination; it now works correctly for multi-group keyboards.
	(gok_key_keycode_from_xkb_key): We now create the new keylabels
	for four groups and up to four levels.  This is more
	correct and more efficient.
	(gok_key_initialize): Got rid of some leaks detected by valgrind,
	in reading XML strings without freeing them.	Read in 
	the 'level' and 'group' attributes of compose keyboard xml nodes.
	(gok_keylabel_new): Pass in level and group instead of
	modifiers and mod_mask.
	(gok_key_add_label): Take level+group instead of mods and mask.
	(gok_key_get_label): FIxed to work properly with multi-group keyboards.
	
	* qwerty.kbd:
	Changed references to (deprecated) 'modifier' attribute to
	'level' instead. (see below).

	* gok/gok-editor.c:
	(gok_editor_add_key):
	Pass additional NULL parameter to gok_key_add_label().

	* gok/gok-output.[ch]:
	(gok_output_unichar_from_keysym): Correct this by using keysym2ucs.
	(gok_output_get_keycode): New, used internally.
	
	* gok/gok-predictor.c:
	(gok_predictor_predict): Pass additional parameter to
	gok_key_add_label().

	* gok/gok-windowlister.c:
	(gok_windowlister_show): Pass additional parameter to
	gok_key_add_label().

	* gok/keysym2ucs.c:
	Changed 'ucs' member of struct from short to long, to
	handle guint32 unichars.  Added a typecast when returning the
	keysym itself.
	
2004-02-04  David Bolter  <david.bolter@utoronto.ca>

	* gok/gok-spy.c: 
	(gok_spy_accessible_ref), (gok_spy_accessible_implicit_ref), 
	(gok_spy_accessible_unref): added preprocessing to create empty
	functions if logging is not enabled.

2004-01-29  Bill Haneman <billh@gnome.org>

	* gok/gok-keyboard.c:
	(gok_keyboard_update_dynamic): Add missing 'else' before if, fixes
	bug #133296.
	Enure that 'nodes' is always initialized. (bug #132775).

2004-01-29  Bill Haneman <billh@gnome.org>

	* gok/gok-spy.c:
	(gok_spy_get_list_parent):
	Handle case of comboboxes with menu/menuitem children.
	Fix for bug #132775.

2004-01-29  Bill Haneman <billh@gnome.org>

	Fixes for bugs #129537 and (partial) #132757.
	* gok/callbacks.c:
	(on_window1_realize):
	Connect a signal handler to a GdkKeymap instance, to detect
	changes in the GDK keymap.

	* gok/gok-keyboard.c:
	(gok_keyboard_branch_gui_valuator):
	Initial code to grab focus on sliders.
	(gok_keyboard_notify_keys_changed): New,
	re-create the compose keyboard when the keymap
	changes.
	(gok_keyboard_notify_xkb_event):
	Provide an alternate (unused) codepath for #129537.

	* gok/gok-spy-priv.h:
	New event type GOKSPY_KEYMAP_EVENT.

	* gok/gok-spy.c:
	(gok_spy_check_queues): Handle keymap events
	by calling gok_keyboard_notify_keys_changed.
	(gok_spy_keymap_listener): Push a KEYMAP event on the
	queue on receipt of a keymap event, if there isn't
	already one waiting.
	():
	
2004-01-28  Bill Haneman <billh@gnome.org>

	* gok/gok-key.c:
	(gok_key_label_from_keysym_string): Fix for bug #132766,
	make sure to dup string "<nil>" if we return it.

2004-01-28  Bill Haneman <billh@gnome.org>

        Partial fix for #117568.
	
	* gok/gok-key.h: Added BRANCHGUIVALUATOR type.
	* gok/gok-keyboard.c:
	(gok_keyboard_branch_gui_valuator):
	(gok_keyboard_branch_byKey):
	(gok_keyboard_output_selectedkey):
	Support BRANCHGUIVALUATOR type - grab focus when a
	gok key corresponding to a valuator is activated.
	Partial fix for bug #132757.
	
	* gok/gok-spy.c:
	(gok_spy_is_ui): Treat SLIDERs as interesting.

Wed Jan 28 01:05:16 2004  Matthias Clasen  <maclas@gmx.de>

	* docs/reference/tmpl/gok-file-utils.sgml: Removed.

	* docs/reference/gok-docs.sgml: Remove the gok-file-utils
	entity declaration and reference.

	* docs/reference/gok-sections.txt: Remove the section
	gok-file-utils, and remove duplicate symbols, which gtk-doc
	can't handle.

2004-01-26  Bill Haneman <billh@gnome.org>

	* gok/gok-spy.c:
	(gok_spy_close): Moved SPI_exit() call here from
	gok_main_close.  Fixes SEGV inside cspi diagnostic
	functions.  Note that SPI_exit() diagnostics 
	report that our refcounts are now balanced; perhaps we're
	dereffing an extra time in a later exit routine?

	* gok/main.c:
	(gok_main_object_state_listener): De-sensitive any UI objects
	whose state has gone from sensitive to insensitive.
	Special-case for state changes to PAGE_TABS; for now
	we brute-force rebuild the current keyboard when this happens.
	Fix for bug #132110.

	* gok/gok-keyboard.c:
	(gok_keyboard_branch_gui): Set the appropriate bitfields on the
	gui branch menus before branching; this means that if we need to
	update the component list, we can tell what kinds of items to include.
	
2004-01-26  Bill Haneman <billh@gnome.org>

	* gok/gok-keyboard.h:
	Added GokSpyUIFlags member to GokKeyboard.

	* gok/gok-keyboard.c:
	(gok_keyboard_update_dynamic): Enable the 
	Menus key if there is a context menu available.
	(gok_keyboard_update_dynamic_keys): New method, 
	split from gok_keyboard_validate_dynamic_keys for
	code reuse.  
	(gok_keyboard_validate_dynamic_keys):
	Call gok_keyboard_update_dynamic_keys above 
	after determining which key types are currently
	available.

	* gok/gok-spy-priv.h:
	Added has_context_menu bitflag to AccessibleNodeFlags.

	* gok/gok-spy.c:
	(gok_spy_process_accessible): Renamed to gok_spy_process_focus,
	because that's what it does.
	Added static theContextMenuAccessible.
	(gok_spy_remove_node): New method, removes an AccessibleNode
	from the nodelist.
	(gok_spy_set_context_menu_accessible): New, remove old node
	and add new context menu node to accessible node list.
	Update the dynamic keys accordingly.
	(gok_spy_process_focus):
	Remove unneeded reference to the focus source accessible.
	Check for availability of a context menu (i.e. 'menu' action)
	on the currently focussed object on receipt of a focus event.
	Do not traverse the tree upwards to compare toplevel accessibles -
	that's unnecessary if we get window events as we should, and in 
	fact will fail in some cases where focus events can be received 
	from an unfocussed application just after a window switch.
	This should help performance and also get rid of some transient
	race condition bugs.

	* gok/gok-spy.h
	(gok_spy_set_context_menu_accessible): Expose this method publicly.

	* gok/main.c:
	(gok_main_window_change_listener):
	If the window just posted has only one child, and that child
	is a menu, then branch directly to the Menus keyboard.
	
2004-01-26  Bill Haneman <billh@gnome.org>

	* gok/gok-spy.c:
	(gok_spy_resolve_namesakes): Fix for bug 132586,
	make sure list is traversed in all cases.

2004-01-24  Sanlig Badral  <badral@openmn.org>

	* configure.in: Added "mn" to ALL_LINGUAS.

2004-01-23  Padraig O'Briain <padraig.obriain@sun.com>

	* gok/gok-keyboard.c:
	gok/gok-spy-priv.h:
	gok/gok-spy.c:
	gok/gok-spy.h: Add names to structs in the unions GokSpyUIFlags and
	AccessibleNodeFlags. Fixes bug #132292.
	
2004-01-23  Bill Haneman <billh@gnome.org>

	* gok/gok-spy.c:
	(gok_spy_search_component_list):
	Set the 'menus' flag if there is a context menu available.
	
2004-01-23  Bill Haneman <billh@gnome.org>

	* gok/gok-spy.c:
	(gok_spy_free_nodes): NULL the pname after gfreeing it.
	(gok_spy_get_node_named): Test 'node' and 'node->pname' 
	before doing a strcmp on node->pname!
	(gok_spy_resolve_namesakes):
	Added reentrancy guard; make sure call to
	gok_spy_distinguish_node is passed list->data
	instead of just 'list'! Fix for crashers including #132250.
	(gok_spy_distinguish_node):
	Test node->paccessible before doing API calls on it.
	Make sure buffers are null terminated even if strncpy
	copies the max number of chars.  Test strlens before 
	doing copies, concats, etc.  Unref relations[i]
	more safely; g_free the relations array.
	(gok_spy_append_node): Fix some highly suspect code
	dealing with appending text contents to anonymous buttons.

2004-01-21  Bill Haneman <billh@gnome.org>

	* gok/gok-keyboard.c:
	(gok_keyboard_update_dynamic):
	Handle selection of listitems in a combobox, requires patch
	for gail bug #132136 in order to actually work.

2004-01-21  Bill Haneman <billh@gnome.org>

	* gok/gok-data.c:
	(gok_data_get_valuator_sensitivity): Reduce the sensitivity of
	the valuator by 75% - this may help with headtracker users.
	Ideally the value needs to be user-settable, see
	bug 132132.

	* gok/gok-key.h:
	Added KEYTYPE_BRANCHLISTITEMS, to deal with 
	comboboxes and other things with 'list' descendants.

	* gok/gok-keyboard.c:
	(gok_keyboard_branch_byKey):
	Add logic for the BRANCHLISTITEMS case.
	(gok_keyboard_update_dynamic):
	Handle Combobox/BRANCHLISTITEMS case.  For such objects, 
	build a dynamic keyboard whose nodes are the list item children.
	Fixes bug #132136. Handle objects of ROLE_COMBO_BOX.
	
	* gok/gok-page-actions.c:
	Don't initialize m_pActionCurrent to NULL, set it to
	gok_action_get_first_action().  Fixes SEGV/assertion failure.

	* gok/gok-spy.c:
	Handle search case GOK_SPY_SEARCH_LISTITEMS.
	(gok_spy_get_list_parent): New, returns parent of 
	a set of listitems, used for combobox support.
	(gok_spy_get_children): Handle ROLE_SPIN_BUTTON and PAGE_TAB
	correctly.
	
2004-01-21  David Bolter  <david.bolter@utoronto.ca>

	* gok/main.c: 
	(gok_main_close): moved call to gok_scanner_close to safer
	location.

2004-01-21  David Bolter  <david.bolter@utoronto.ca>

	* gok/gok-settings-dialog.c: 
	(gok_settingsdialog_close): moved call to 
	gok_page_accessmethod_close before the call to destroy
	the settings dialog.

	Fixes bug #132104
	
2004-01-21  Bill Haneman <billh@gnome.org>

	* gok/gok-spy.c:
	(gok_spy_append_node): Remember to dup the string properly if it's from the
	parent's AccessibleName.  Fix for bug #132094.

2004-01-20 Alastair McKinstry <mckinstry@computer.org>

	* configure.in: Added "ga" (Irish) to ALL_LINGUAS.

2004-01-19  Bill Haneman <billh@gnome.org>
	
        Mostly a fix for bug #117072, also code for #123479.
	
	* gok/gok-key.h: 
	* gok/gok-key.c: 
	Minor struct member renaming.

	* gok/gok-keyboard.c:
	Changed some fprintfs to gok_log output.
	(gok_keyboard_delete): Don't gok_spy_free the 
	accessible node; that's done via gok_spy_accessible_unref now.
	(gok_keyboard_branch_gui): Don't take an SPI_ROLE anymore,
	take two params, the second of which indicates the
	GOK_SPY_SEARCH_TYPE.
	(gok_keyboard_branch_byKey): Pass GOK_SPY_SEARCH_CHILDREN
	when executing for BRANCHMENUITEMS key or BRANCHGUISELECTION key.
	For BRANCHTOOLBARS, use GOK_SPY_SEARCH_TOOLBARS.
	Introduce new case, KEYTYPE_BRANCHGUISELECTACTION, to handle
	objects which need to be selected+activated at the same time.
	(gok_style_if_selectable): New function, in place of previous
	cut-and-paste code.
	(gok_keyboard_update_dynamic): Use GSList for accessible node
	list, instead of linked nodes. Use new logic, to either get
	a child list, or a list of 'interesting' nodes which may be
	cached; this is a key part of the fix for bug #117072.
	Big refactor for node traversal logic, now calls
	gok_spy_node_match instead of only inlining the ROLE heuristics.
	(gok_keyboard_branch_gui): No longer take a role param, just
	a root accessible node and a GokSpySearchType.
	(gok_keyboard_branch_gui_selectaction): New.
	Select the given child and invoke the first available action.
	(gok_keyboard_branch_gui_actions): Removed some logic checking for
	'interesting' children before invoking an action.  This sort of
	culling can more efficiently be done in the initial traversal of
	the UI.

	* gok/gok-spy-priv.h:
	New struct, AccessibleNodeFlags.  Used in creating list of
	AccessibleNodes, which is cached.  Keeping the bitflags helps
	performance.

	* gok/gok-spy.c:
	(gok_spy_create_list, gok_spy_find_children): Removed, replaced
	for performance reasons.
	(gok_spy_append_node): New, append a node to a GSList.
	(gok_spy_free_nodes): New.
	(gok_spy_node_match): Tests a node against a GokSpySearchType.
	(gok_spy_get_children): Old name, new purpose: used only when
	branching on a menu parent, or otherwise searching a container
	whose children ought to be almost all 'interesting'.
	(gok_spy_get_list): Totally new implementation, now returns a
	GSList which might be cached.  The list is updated when the active
	window changes.  It could and should be updated when other sorts
	of state changes occur in the focussed application, as well.
	(gok_spy_check_queues): The EventNode struct used internally by GOK
	now stores an AccessibleEvent.
	(gok_spy_worth_searching): Don't take a ROLE as a param, it
	doesn't help.
	(gok_spy_has_child, gok_spy_has_child_aux): Removed.
	(gok_spy_is_ui): New implementation logic.
	(gok_spy_is_menu_role): New.
	(gok_spy_find_children): Removed.
	(gok_spy_create_list): Removed.
	(gok_spy_append_node): We can use an ancestor's name when naming a
	GokKey, if there are no siblings.
	(gok_spy_get_toolbar_item): New.
	(gok_spy_search_component_list): New.
	(gok_spy_update_component_list): New, called when the 'foreground'
	accessible changes.

	* gok/gok-spy.h:
	New GokSpySearchType values, and GokSpyUIFlags.  Also
	GokSpyMatchCondition.

	* gok/gok-word-complete.c: Changed some 'gchar*'/'const gchar*'
	definitions to keep the compiler happy.
	
2004-01-16  David Bolter  <david.bolter@utoronto.ca>

	* gok/main.c: 
	(on_gok_window_state_event): trap and revert iconification
	(gok_main_create_window): connected window_state_event signal
	(gok_main_close): moved SPI_exit call to safer location
	
	Fixes bug #125931, #131426

2004-01-16  David Bolter  <david.bolter@utoronto.ca>

	* gok/gok-page-wordcomplete.c: 
	  (gok_page_wordcomplete_apply): removed cruft, added log trace
	* gok/gok-settings-dialog.c: 
	  (gok_settingsdialog_close): added log trace
	  
	Work towards bug #131447

2004-01-12  David Bolter  <david.bolter@utoronto.ca>

	* News, configure.in: Version 0.9.5

2004-01-12  David Bolter  <david.bolter@utoronto.ca>

	* gok.glade2
	* gok/callbacks.c
	* gok/callbacks.h
	* gok/gok-page-wordcomplete.c
	* gok/gok-page-wordcomplete.h
	* gok/interface.c
	
	Added UI for specification of an extra word list (for word 
	completion).  This is work towards bug #126176

2004-01-12  David Bolter  <david.bolter@utoronto.ca>

	* configure.in:added x_libraries to xinputpath so x 
	libraries are found if installed in non-standard location 
	(Thanks Matt Levin)
	
	Fixes bug #130807

2004.01.10  Arafat Medini <lumina@silverpen.de>
                                                                                
        * configure.in: Added Arabic locale "ar" to ALL_LINGUAS

2004-01-07  David Bolter  <david.bolter@utoronto.ca>

	* gok/test-gok-action.c: (main): commented out some tests
	* gok/test-gok-feedback.c: (main) commented out some tests 
	
	Temporary fix for bug #129391

2004-01-03  Robert Sedak  <robert.sedak@sk.htnet.hr>

        * configure.in: Added "hr" in ALL_LINGUAS.

2003-12-30  Å½ygimantas BeruÄka  <uid0@tuxfamily.org>

	* configure.in: Added "lt" (Lithuanian) to ALL_LINGUAS.

2003-12-17  Muktha  <muktha.narayan@wipro.com>

	* gok/main.c: Enable the keyboard accessibility key before
	enabling the sticky keys. Fixes bug #129078.


2003-12-11  Jan Arne Petersen  <jpetersen@uni-bonn.de>
 
	* gok/gok-editor.c: (gok_editor_open_file),
 	(gok_editor_save_current_keyboard_as):

	* gok/gok-page-feedbacks.c: (gok_page_feedbacks_get_sound_file):
 	Replace GtkFileSelection with GtkFileChooser.
 
2003-12-11 Bill Haneman <billh@gnome.org>

	* gok/callbacks.c:
	(on_window1_realize):
	Remove the Xlib calls to set WM hints, etc., since
	we can do this via gtk+ now.

	* configure.in:
	Depend on gtk+ 2.3.1.
	
2003-12-11 Padraig O'Briain <padraig.obriain@sun.com>

	* gok/callbacks.c (gok_discard_focus_filter): Remove this function.
	* main.c (gok_main_create_window): Set accept_focus property to FALSE
	when creating window. Fixes bug #126727.

2003-12-09 Bill Haneman <billh@gnome.org>

	* gok/gok-keyboard.c:
	Fixed problem with 'control' key shift status.  Fixes bug
        #127397.

2003-12-08  Bill Haneman <billh@gnome.org>

	* NEWS, configure.in:
	Revved to version 0.9.4.

2003-12-08  David Bolter  <david.bolter@utoronto.ca>

	* README: added note about panels and dock mode.
	* gok/gok-keyboard.c: improved gok_keyboard_about (towards bug #119665)

2003-12-08  Bill Haneman <billh@gnome.org>

	* gok/keysym2ucs.c: New file, thanks to Marcus G. Kuhn
	<http://www.cl.cam.ac.uk/~mgk25/>
	Converts from an X keysym to a ucs2/unicode character.

	* gok/gok-key.c:
	(gok_key_label_from_keycode): Try converting the X keysym
	to a UCS-2-compatible UTF-8 character before falling back
	to the Xlib ASCII label for a KEYSYM.  Fix for #127296.

	* gok/Makefile.am: Include keysym2ucs.c in gok_SOURCES.
	
	* gok/gok-spy.c:
	(gok_spy_check_queues): Reset word completion state on
	window change.  Fixes bug #128966.

2003-12-05  Bill Haneman <billh@gnome.org>

	* gok/gok-keyboard.c:
	(gok_keyboard_branch_gui_actions):
	Branch to compose keyboard (instead of invoking action)
	if the UI element is EditableText.

	Fix for bug #126298.
	
2003-12-05  David Bolter  <david.bolter@utoronto.ca>

	* gok/gok-spy.c: 
	(gok_spy_create_list): now calls gok_spy_resolve_namesakes
	(gok_spy_node_get_node_named): new function
	(gok_spy_distinguish_node_name): new function
	(gok_spy_resolve_namesakes): new function
	
	Fix for bug #126299

2003-12-02  David Bolter  <david.bolter@utoronto.ca>

	* gok/gok-key.c: (gok_key_initialize): removed obsolete prefs_locked check

	* gok/gok-settings-dialog.c: 
	  (gok_settingsdialog_open): now uses gok_settings_show
	  (gok_settingsdialog_show): we now hide certain notebook pages if
	  gok gconf preference lock setting is set, and show them if it is not.
	
	* gok/gok-settings-dialog.h: removed gok_settingsdialog_lock
	
	Fix for bug #128117

2003-12-01  David Bolter <david.bolter@utoronto.ca>

	* gok/gok-keyboard.c: reverting gok requiring SPI_STATE_SENSITIVE
	as redundant to requiring SPI_STATE_ENABLED.

2003-12-01  David Bolter <david.bolter@utoronto.ca>

	* singlekey-inverse-scanning.xml.in,
	singlekey-automatic-scanning.xml.in: new access method for single
	key sequential scanning.

	* Makefile.am: added two new access methods

	* gok/gok-keyboard.c: gok now disables if there is not state
	SPI_STATE_SENSITIVE (in addition to SPI_STATE_ENABLED). This work unrelated
	to the fix.

	* gok/: gok-scanner.c, gok-scanner.h: Added new call type:
	CALL_CHUNKER_CHUNK_KEYS ("ChunkerChunkKeys" for use in access
	method markup)

	* gok/: gok-chunker.c, gok-chunker.h: Added new chunk type:
	CHUNKER_KEYS, and functions gok_chunker: chunk_keys,
	get_best_chunk, chunk_move_before, sort_key_chunks, chunk_each_key,
	and other modifications to integrate this new chunk type.

	* po/POTFILES.in: added singlekey-automatic-scanning.xml.in and
	singlekey-inverse-scanning.xml.in
	
	Fix for bug #128185

2003-12-01  David Bolter <david.bolter@utoronto.ca>

	* gok/gok-keyboard.c: gok now disables if there is not state
	SPI_STATE_SENSITIVE (in addition to SPI_STATE_ENABLED). 

2003-11-19  David Bolter <david.bolter@utoronto.ca>

	* gok/gok-keyboard.c: gok_keyboard_branch_gui_actions now only
	branches back from the current keyboard if the widget activated is
	a menu item.
	
	Fix for bug #127398

2003-11-19  David Bolter <david.bolter@utoronto.ca>

	* gok/main.c: gok_main_read_keyboards_from_dir now looks for a
	subdirectory that matches the user's language. It will look for the
	closest matching subdirectory and if it is not found it will resort
	to the given directory.
	
	Fix for bug #126722

2003-11-18  Frederic Crozat  <fcrozat@mandrakesoft.com>

	* Makefile.am: Be DESTDIR compliant.

2003-11-17 Bill Haneman <billh@gnome.org>

	* gok/gok-data.h:
	* gok/gok-data.c:
	(gok_data_set_aux_dictionaries):
	Change param from const gchar* to gchar*, to silence
	compiler warning.
	
2003-11-15  Danilo Å egan  <dsegan@gmx.net>

	* gok/gok-spy.c: (gok_spy_append_node): Move gok_log below
	declarations to allow compiling with GCC 2.95 (fixes #127053).

2003-11-14 David Bolter <david.bolter@utoronto.ca>

	* gok/gok-keyboard.c: (gok_keyboard_branch_gui_actions): gok now
	branches back (to main) after a leaf (e.g. a menu item) is
	activated.

	Fix for bug #126814, and bug #126815 (at least partially)

2003-11-11 Bill Haneman <billh@gnome.org>

	* NEWS, README:
	Noted that GOK is now at 0.9.3.  Tagged CVS.
	This is the 0.9.3 release of GOK.

2003-11-11 Bill Haneman <billh@gnome.org>
	
	* Makefile.am:
	Revised install-data-hook to install *.kbd files
	into locale-specific subdirectories of the usual datadir.
	Fixes bug 90500. (minor issue; gok_main_read_keyboards_from_dir
	still needs to find the locale-appropriate dir for reading keyboards,
	to complete the end-to-end i18n of GOK's *.kbd files).

	* *.kbd:
	Removed locale-specific elements since they are now in 
	locale-specific files.  Note that these files are now generated
	anyway - perhaps we should remove them from CVS?

2003-11-10 Bill Haneman <billh@gnome.org>

	* configure.in:
	Depend on intltool 0.27.3 (due to fix for bug 127237).

	* Makefile.am:
	Revised rules for *.kbd files, to use INTLTOOL_KBD_RULE.
	We now generate *.kbd from *.kbd.in.

	* *.kbd.in: Added, and marked the appropriate 
	key labels for translation.

	* po/POTFILES.in:
	Added above files to those marked for translation.

	* gok/gok-keyboard.c:
	(gok_keyboard_get_xkb_desc): Marked some warning strings for 
	translation.

	* gok/gok-key.c:
	(gok_key_initialize): Strip leading and trailing whitespace
	from key labels.  Fixes bug 126235.
	
	
2003-11-10 Padraig O'Briain <padraig.obriain@sun.com>

	* gok/main.h: Remove gok_main_object_state_listener.

	* gok/main.c: Add static declaration for gok_main_object_state_listener
	and make internal functions static.

	Fix for bug #126603.

2003-11-07 David Bolter <david.bolter@utoronto.ca>

	* gok/gok-key.c: fix for potential memory overwrite, and work related to 
	117049 which I forgot to commit with the last batch
	
	Fix for bug #126451

2003-11-07 David Bolter <david.bolter@utoronto.ca>

	* gok/main.c: added gok_main_object_state_listener to monitor
	changes in checkboxs etc. and update any relevant displayed gok
	keys.

	* gok/: gok-spy.c, gok-spy.h: added support for state change
	monitoring.
	
	This fixes bug #122109, #117049, #125319

2003-11-07 Kaushal Kumar <kaushal.kumar@wipro.com>

	* po/hi.po: fixed a compile error.
	Fixes bug #126349.

2003-11-06 David Bolter <david.bolter@utoronto.ca

	* gok/gok-spy.c: fixed recent bug in gok_spy_append_node where the
	wrong variable was being strlen'ed.
	[fix for bug #126378]

2003-11-04 Bill Haneman <billh@gnome.org>

	* gok/gok-spy.c:
	(gok_spy_append_node): Use the first 18 characters of
	the accessible-description if there's no accessible-name, but
	there is a description.  If description > 18 chars, use first
	15 chars plus ellipses ("...").  Fixes bug #107857.
	
	
2003-11-04 Bill Haneman <billh@gnome.org>

	* tagged and branched gnome-2-4, for stable bugfixing.

        * Merged gok_i18n branch into HEAD.

	* copied Hindi tranalation po/hi.po from gok_i18n to HEAD.

	* gok/gok-keyboard.c:
	(gok_keyboard_get_alpha, gok_keyboard_get_alpha_by_frequency): 
	Marked "keyboard creation" strings for translation.
	Note that these are the strings that are converted programmatically
	into GOK's "alphabetic" and "frequency" character keyboards.
	
2003-10-30 Bill Haneman  <billh@gnome.org>

        Fixes and improvements for #107211 and #108137.
	
	* gok/gok-key.h:
	Changed GokKey struct to remove 'Modifier' string and
	replace with guint modifiers and mod_mask.
	(gok_key_add_label):
	Changed modifier param from a string to modifier bitfields and
	modifier mask, corresponding to the keyboard and/or XServer's idea
	of which modifier bits are currently on.

	* gok/gok-key.c:
	(gok_key_get_xkb_type_index):
	Changed to use new gok_key_add_label api, and
	to create a modmask for XKB definitions that includes all 'standard'
	modifiers from X.
	(gok_key_from_xkb_key):
	Call gok_keylabel_new using new params, for common combinations of
	SPI KEYMASK values.
	(gok_key_initialize): As above, for keyboards parsed from .KBD files.
	(gok_keylabel_new): New params, as mentioned above.
	We now assign a guint for modifiers and mod_mask, so that 
	a 'match' for the label is determined by current_mods == mods | modmask.
	Elsewhere, change all calls to gok_keylabel_new () to use the new params.
	(gok_key_get_label): Use new method to get appropriate label, based on
	current modifier bitfields from gok_spy_get_modmask (), avoiding 
	lots of strcmp calls.  Removed comment about being slow on XSun, since
	this should speed things up a lot.
	(gok_keylabel_new): Changed as above, we now pass 2 guints instead of
	a string, for the modifiers and modmask for which a label is appropriate.
	Note that modifiers == modmask == 0 is a match for all modifier combinations.
	
	* gok/gok-editor.c:
	* gok/gok-keyboard.c:
	Change all uses of gok_key_add_label to match new signature.

	* gok/gok-modifier.h:
	(gok_modifier_press, gok_modifier_set_state): Remove unused method.
	(gok_modifier_mask_for_name): New; returns a mask for a modifier name
	or '+'-delimited list of modfier names.
	
	* gok/gok-modifier.c:
	(gok_modifier_press, gok_modifier_set_state): Remove unused method.
	(gok_modifier_mask_for_name): New; returns a mask for a modifier name
	or '+'-delimited list of modifier names.
	(gok_modifier_get_normal): Simplified, returns true if gok_spy_get_modifiers() is zero.
	Will need to be revisited if/when we start using GOK-specific modifiers that don't have
	analogues on the actual X keyboard.

	* gok/gok-output.c:
	(gok_output_unichar_from_keysym): Changed to take a guint mods
	modifier parameter.  This is required to make XkbTranslateKeySym work properly
	for compose key sequences.

	* gok/gok-predictor.c:
	Changed to use new gok_key_add_label API.

	* gok/gok-spy.c:
	(gok_spy_modifier_listener): Simplified to avoid multiple calls to 
	gok_keyboard_update_labels and gok_modifier_update_modifier_keys due to
	multiple gok_modifier_set_state calls.  Now we don't need to call
	gok_modifier_set_state for xkb-standard modifiers.  This also prevents
	a lot of strcmp-ing when modifier events are received by GOK.

	* gok/gok-windowlister.c:
	Changed to use new gok_key_add_label API.

	

2003-10-27  David Bolter <david.bolter@utoronto.ca>

	* gok/main.c: added call for logout dialog in
	check_accessibility_cb
	[fix for bug #121445]

2003-10-27  David Bolter <david.bolter@utoronto.ca>

	* gok/gok-keyboard.c: added menus key to login keyboard.
	[Fix for bug #125156]

2003-10-24  David Bolter <david.bolter@utoronto.ca>

	* gok/: gok-keyboard.c, gok-key.c, main.c, gok-key.h: Added another
	keyboard layout (which eventually can be used when gok is docked).
	This commit causes no visible difference in GOK.

2003-10-21  David Bolter <david.bolter@utoronto.ca>

	* gok/main.c: changed the parent widgets for our message dialogs to
	NULL, so that gok does not occlude itself with the dialogs. 
	[Fix for bug #123194]

2003-10-15  Padraig O'Briain <padraig.obriain@sun.com>

	* gok/gok-input.c (gok_input_free): Fix for buiding without X_INPUT.
	(bug #123736)

2003-10-13  Bill Haneman <billh@gnome.org>

	* configure.in: Revved to 0.8.4.  This is the gnome-2-4 release.
	Tagged gnome-2-4.
	
2003-10-10 Bill Haneman  <billh@gnome.org>

	* gok/gok-word-complete.c:
	Added gunichar 'compose' member to private data.
	(gok_wordcomplete_unichar_is_delimiter):
	Don't delimit on receipt of a compose key, keep composing.
	Rework this code to use UNICODE line-break types to determine
	which characters are delimiters.
	(gok_wordcomplete_unichar_is_compose): New.
	(gok_wordcomplete_unichar_is_combine): New.
	(gok_wordcomplete_compose): New, returns a composed unicode
	character from a base character and a combining character.
	(gok_wordcomplete_compose_push): New, stores prefix-composition
	keysyms on-the-fly.  Allows word completion when using compose
	sequences on keyboards.
	(gok_wordcomplete_last_combine): Composite a new postfix combining 
	character with the most recent letter in the word part; this basically
	resets the word completion pointers (pop + push) when a combining postfix
	is entered.
	(gok_wordcomplete_unichar_push): Do compositing if we are pushing
	a char onto a prefix or adding a postfix.
	(gok_wordcomplete_real_process_unichar): Handle the new COMBINE and
	COMPOSE character types.

	* gok/gok-word-complete.h:
	Added GOK_WORDCOMPLETE_CHAR_TYPE_COMPOSE and
	GOK_WORDCOMPLETE_CHAR_TYPE_COMBINE.

	* gok/gok-output.c:
	(gok_output_unichar_from_keysym):
	Don't return keysym cast to gunichar without a string lookup even for ASCII.
	Always pass the current modmask to XkbtranslateKeySym.
	(gok_output_send_to_system): Compute an index > 1 if the group > 0.

	* gok/gok-utf8-word-complete.c:
	(utf8_wordcomplete_predict_string): Normalize to G_NORMALIZE_DEFAULT_COMPOSE,
	not G_NORMALIZE_ALL, so that we can generate composed character 
	sequences: our synthesis fails for maximally decomposed sequences.
		
2003-10-09 Bill Haneman  <billh@gnome.org>

	* gok/main.c:
	(gok_main_open): Initialize the word completion engine's auxiliary search
	dictionaries at startup.

	* gok/gok-data.h:
	* gok/gok-data.c:
	(gok_data_get_use_aux_dictionaries, gok_data_set_use_aux_dictionaries):
	Add routines to get and set this toggle.
	(gok_data_get_aux_dictionaries, gok_data_set_aux_dictionaries):
	Add routines to specify and retrieve a semicolon-delimited list
	of files containing word lists.

	* gok-with-references.schemas.m4:
	Add schemas for use_aux_dicts and aux_dicts.
	
	* gok/gok-utf8-word-complete.c:
	(utf8_wordcompete_find):
	Don't return dictionary words that are identical with the
	completion-prefix, only dictionary words that are longer.

	* gok/gok-word-complete.h
	* gok/gok-word-complete.c:
	(gok_wordcomplete_get_aux_dictionaries, gok_wordcomplete_set_aux_dictionaries): 
	New methods to allow control of the fully-qualified 
	path of auxiliary word list files.
	(gok_wordcomplete_real_get_aux_dict, gok_wordcomplete_real_set_aux_dict):
	Default implementations for above.
	(gok_wordcomplete_instance_init): Initialize the vtable
	entries for get/set auxiliary dict.

	* gok/gok-utf8-word-complete.c:
	(utf8_wordcomplete_open): 
	Use new GokWordComplete methods to determine and read from aux dict.
	(utf8_add_from_lists):
	Fall back to ISO-8865-1 encoding if words aren't valid UTF-8.
	Ignore characters in words which occur beyond '\' character; 
	this allows use of 'ispell' dictionaries which may contain 
	additional grammatical information after the actual lexical word.

	* gok/gok-data.h:
	* gok/gok-data.c:
	(gok_data_get_aux_dictionaries, gok_data_get_use_aux_dictionaries):
	New methods to allow user to control whether GOK's word prediction
	searches auxiliary (additional user or system) dictionaries or not.
	
2003-10-09  David Bolter <david.bolter@utoronto.ca>

	* gok/: gok-keyboard.c, gok-keyboard.h, gok-windowlister.c, main.c,
	main.h: Beginning work on extending keyboard layout algorihms.

2003-10-07  Bill Haneman <billh@gnome.org>

	* gok/gok-word-complete.c:
	(gok_wordcomplete_real_unichar_pop):
	Check existing word-part before 
	backfilling with NULL if backspace occurs. 
	[Fix for bug #120305].

2003-10-02  David Bolter <david.bolter@utoronto.ca>

	* gok/gok-chunker.c: robustified gok_chunker_highlight_first_key
	[Fix for bug #123497]

2003-10-02  Bill Haneman <billh@gnome.org>

        * gok/test-gok-wordcomplete.c:
	(main): Fix for bug #123698; moved declaration to head of block.
	Why didn't -ansi catch this?
	
	* gok/gok-utf8-word-complete.c:
	(utf8_wordcomplete_open): Call utf8_add_from_system_dictionary. 
	(utf8_add_from_system_dictionary): New method, reads in the aspell dictionary to supplement the GOK dictionary.
	(utf8_wordcomplete_find): Implemented something useful (though brute-force) here.
	
2003-10-01  Bill Haneman <billh@gnome.org>

	* gok/main.c:
	(gok_main_read_keyboards_from_dir): 
	Fix for #123405 workaround.

2003-10-01  Bill Haneman <billh@gnome.org>

	* gok/gok-log-reader.c:
	Added #include of <sys/types.h> as compilation with
	-ansi flag requires it on some systems (off_t is undefined
	by <sys/stat.h> from gok-log-reader.h).
	
	* gok/gok-keyboard.c:
	Reverted addition of new strings marked for translation.
	(gok_keyboard_output_key): Use new API for gok_key_wordcomplete_output.

	* gok/gok-word-complete.c:
	(gok_wordcomplete_process_and_predict): Take an additional
	param specifying the number of predicions, so that calling
	gok_data API is not necessary.  This removes a needless dependency.
	(gok_wordcomplete_get_output): Moved to gok-key.c, which rationalizes
	our dependencies.

	* gok/gok-word-complete.h:
	Remove vestigial last_output member from private struct.

	* gok/main.c:
	(gok_main_initialize_wordcomplete):
	Moved call to gok_keyslotter_on() here from gok_wordcomplete.
	
	* gok/Makefile.am: Include test-gok-wordcomplete in
	uninstalled tests; include gok-utf8-word-complete.[ch]
	in SOURCES.

	* gok/test-gok-wordcomplete.c:
	Test harness for word completion.

	* gok/gok-chunker.h: Removed dependency on gok-keyboard, 
	replaced with more lightweight dependency on gok-key.

	* gok/gok-keyslotter.c:
	(gok_keyslotter_on): Return a gboolean as our usage in main.c requires.
	
	* gok/gok-key.c:
	#include gok-word-complete.h
	(gok_key_wordcomplete_output): 
	Moved here from gok-word-complete, where it didn't
	belong.  Allows gok-word-complete to be used and tested
	independent of GokKeyboard/GokKey.
	
	* gok/gok-utf8-word-complete.[hc]:
	New files: utf8-safe word completion.  Not yet the
	default completion engine.

2003-10-01  Damien Carbery <damien.carbery@sun.com>

	* gok/gok-scanner.c: moved variable declarations for C compile
	compliance. [fix for bug #123622]

2003-10-01  David Bolter <david.bolter@utoronto.ca>

	* gok/gok-spy.c: 
	(gok_spy_check_window): added choosers alerts and application role types.  

	[Fix for bug #123482]

2003-09-30  David Bolter <david.bolter@utoronto.ca>

	* gok/: gok-scanner.c, gok-scanner.h:
	gok_scanner_read_access_method now uses the correct node for
	reading the access method rates, effects, and handler states. 
	
	[Fix for bug #123561]

2003-09-30  Bill Haneman <billh@gnome.org>

	* gok/word-predict.c:
	(WordCompletePredict): Make sure the returned array is NULL-terminated.

	* gok/gok-word-complete.c
 	Refactor to remove dependencies on gok-*.[ch] from this module.
	(gok_wordcomplete_get_output): Move to gok-key.c.

	* gok/gok-key.c:
	(gok_key_wordcomplete_output): Rename and move here from gok-word-complete.c
	
	* gok/test-word-complete.c:
	New file; test harness for word-prediction (mostly a timing test at the moment).

	* gok/Makefile.am:
	Add rules for test-word-complete.
	
2003-09-30  Bill Haneman <billh@gnome.org>
	
	* gok/gok-keyboard.h:
	(gok_keyboard_clear_completion_keys): New;
	Refactor clearing of completion keys into gok-keyboard, from gok-word-complete.c.
	(gok_keyboard_get_alpha, gok_keyboard_get_alpha_by_frequency): New.
	(gok_keyboard_add_predictions): New (see below).
	
	* gok/gok-keyboard.c:
	(gok_keyboard_get_xkb_desc): Check the return values from XkbGetGeometry and issue a 
	warning if call does not succeed. [Bug #123405]
	(gok_keyboard_get_core): Return NULL if the XkbGeom is not valid, causing GOK to
	revert to the hand-created XML 'Compose' keyboard.
	Bug #123405.
	(gok_keyboard_add_keys_from_charstrings): New method, allows
	a gok compose keyboard to be built up from a UTF-8 string.
	(gok_keyboard_compose_create): New method to create a compose keyboard
	of a certain name.  Add logic to suppress word-completion keys if the currently
	focussed AccessibleText object is a password entry field.
	(gok_keyboard_get_alpha): New; Gets a compose keyboard whose characters are 
	arranged in alphabetical order appropriate to the current locale.
	(gok_keyboard_get_alpha_by_frequency): New; as above, but arranges 
	keys according to character frequency in the current locale.
	These two methods are localizable via exported strings (with an explanatory
	notes for translators).
	(gok_keyboard_get_core): Refactor to use gok_keyboard_compose_create().
	(gok_keyboard_set_predictions): New; part of refactor which moved this
	functionality (setting of word-prediction keys) from gok-word-complete 
	to gok-keyboard.  GokWordComplete now only makes the predictions, it doesn't
	manipulate the GokKeyboard.

	* gok/gok-keyslotter.c:
	(gok_keyslotter_on): Changed call from gok_wordcomplete_add_prediction_keys to 
	gok_keyslotter_add_prediction_keys.

	* gok/gok-output.c:
	(gok_output_can_predict): New.
	(gok_output_update_predictions): New, calls gok-keyboard methods to
	update the prediction keys when a gok-output event occurs (for instance,
	when GOK synthesizes a new key event).
	(gok_output_send_to_system): Refactored to call gok_output_update_predictions
	as appropriate.

	* gok/gok-page-wordcomplete:
	(gok_page_wordcomplete_apply):
	Replaced calls to gok_wordcomplete_on with gok_keyslotter_on.

	* gok/gok-scanner.c:
	(gok_scanner_on_*): Added calls to gok_main_raise_window() when
	input events occur.

	* gok/gok-spy.h: Fixed C++-style comments(!)

	* gok/gok-word-complete.h:
	* gok/gok-word-complete.c:
	GObject-ify, GokWordComplete is now a GType.
	Almost all GokWordComplete methods were made virtual, and
	there was a major refactor.  Some functionality was moved to
	word-complete.c.
	(gok_wordcomplete_open, gok_wordcomplete_close, gok_wordcomplete_reset): Made virtual.
	(gok_wordcomplete_predict): Made virtual, now returns an array of strings.
        No longer actually modifies the keyboard, that's done by the caller.
	(gok_wordcomplete_process_and_predict): New convenience method.
	(gok_wordcomplete_process_unichar) : New, process a new letter without making predictions.
	(gok_wordcomplete_predict_string): New, predict the completion of a string passed in.
        (gok_wordcomplete_add_new_word) : Made virtual.
	(gok_wordcomplete_get_output): New, allows GokWordComplete to be more independent of
	GokKeyboard, etc.  Should probably still move this method into gok-output.c though.
	(gok_wordcomplete_get_default): New; get the current default word completion engine.
	(gok_wordcomplete_clear_keys): Removed.
	(gok_wordcomplete_unichar_is_backspace, gok_wordcomplete_unichar_is_delimiter): New.
	(gok_wordcomplete_unichar_pop, gok_wordcomplete_unichar_push): New methods for internal
	use and use by subclasses.
	(gok_wordcomplete_unichar_get_category): Returns an enum indicating the effect the unichar
	should have on the predictor state, i.e. normal, backspace, delimiter.
	(gok_wordcomplete_process_unichar): handle a newly entered character, i.e. make it
	alter the predictor's state machine appropriately.
	(gok_wordcomplete_predict): Returns the predictions appropriate to the current
	predictor's state.  Note that this is different from gok_wordcomplete_predict_string,
	which is independent of the initial predictor state.
	(gok_wordcomplete_get_word_part): Returns a string which is the substring "currently being
	completed".

	* gok/main.c:
	(gok_main_raise_window) : New, refactors out repeated calls to gdk_window_raise().
	
	* gok/word-complete.h:
	* gok/word-complete.c:
	Convert to a vehicle for new subtype of GokWordComplete,  GokTrieWordComplete.
	Made many publicly-exported methods private.
	(WordCompletePredict):
	Modify function sig to conform to GokWordComplete method prototype.

2003-09-29  David Bolter <david.bolter@utoronto.ca>
	
	* configure.in: version 0.8.3

2003-09-29  David Bolter <david.bolter@utoronto.ca>

	* gok/gok-scanner.c: Now use appropriate node when reading access
	method (in gok_scanner_read_access_method). Also moved suspicious
	variable declarations outside of while loop in
	gok_scanner_find_node (note this function currently seems to do a
	shallow search). Fix for 123485.

2003-09-25  Padraig O'Briain <padraig.obriain@sun.com>

	* gok/gok-input.[ch]:
	Add next field to GokInput data structure to allow for more than
	one device with same name.
	(gok_input_get_device_list): Add check for duplicate name and
	chain the GokInput data structure using next field instead of adding
	it to the list.
	(find_input): Change from find_device_info and return GokInput
	data structures for all devices with specified name.
	(gok_input_init): Add listeners for all devices witht same name.
	(gok_input_free): Free chained data structures.
	(gok_input_find_by_name): Call find_input instead of 
	find_device_info.

	This fixes bug #122443.

2003-09-24  David Bolter <david.bolter@utoronto.ca>

	* automatic-scanning.xml.in, direct-selection.xml.in,
	dwell-selection.xml.in, inverse-scanning.xml.in: created a higher
	root element (fix for 122431).

2003-09-19  Bill Haneman <billh@gnome.org>

	* gok.rc: Added style "StyleButtonBranchPageSelection"

	* gok/gok-key.c: 
	(gok_key_set_button_name): 
	Apply about rc-style in KEYSTYLE_PAGESELECTION case.
	
	[Fixes bug #122110]

2003-09-18  Bill Haneman <billh@gnome.org>

	* gok/gok-key.c:
	(gok_key_delete): Added call to gok_repeat_drop_refs () to ensure that 
	a destroyed GokKey isn't dereferenced by gok_repeat.
	(gok_key_initialize): Initialize the key image, image type, and 
	component-state for the repeat-next key, so that a visible 
	indication of togglestate can be displayed.
	(gok_key_set_button_name): Handle KEYSTYLE_REPEATNEXT same as 
	KEYSTYLE_EDIT, visually distinguishes the repeat-next key from 
	other Compose keys.
	(gok_key_update_toggle_state): Check for null pKey->pButton
	before typecast (paranoia).

	* gok/gok-key.h:
	Added KEYSTYLE_REPEATNEXT, so that repeat-next key can be visually
	distinguished.
	
	* gok/gok-keyboard.c:
	(gok_keyboard_get_core): Initialize the image, image-type, and 
	component-state info for the compose kbd's repeat-next key, so a 
	toggle indication can be displayed.  Also initialize the 
	indicator-type to "checkbox".
	(gok_keyboard_output_key): Handle the repeat-next key somewhat 
	differently.
	
	* gok/gok-repeat.h:
	(gok_repeat_toggle_armed) : New method for toggling repeat state.
	(gok_repeat_drop_refs): New method to prevent use of destroyed 
	toggle key.
	(gok_repeat_arm): Pass in a GokKey* param.

	* gok/gok-repeat.c:
	Added armed_key static.
	(gok_repeat_toggle_armed) : New (see above).
	(gok_repeat_arm, gok_repeat_disarm): Maintain the ComponentState.active
	for the armed_key in sync with the "repeat armed" state, and
	update the button's toggle-state.
	(gok_repeat_drop_refs): New method to prevent redirecting through
	a destroyed toggle key.
	[Fixes bug #117683]
	
2003-09-18  David Bolter <david.bolter@utoronto.ca>

	* gok/main.c: added GOKLOGINKEYBOARDNAME for login mode keyboard,
	added logic in main_open to avoid, and in
	gok_main_check_sticky_keys to avoid dialogs that can cause
	obstruction during login (since we can not expect a window manager
	during login).

	* gok/gok-output.c: modified gok_output_send_to_system so there is
	no prediction/completion when in login mode.

	* gok/gok-keyboard.c: No longer add extraneous keys to Keyboard
	when in login mode.

	* gok/gok-data.c: now return FALSE for word completion and command
	prediction if gok is in login mode.
	
	(Fix for 122641 and 122645, dealing with gok login)

2003-09-17  Fatih Demir <kabalak@gtranslator.org>

	* configure.in: Added "ta" (Tamil) to the languages' list.

2003-09-12  Bill Haneman <billh@gnome.org>


	* gok/gok-scanner.c:
	Include <locale.h> explicitly; fixes build in environments
	which don't pull it in automatically.  Fixes #122014.
	(gok_scanner_get_lang): Bracket use of LC_MESSAGES
	with #if HAVE_LC_MESSAGES.

	* configure.in:
	Re-dist, version 0.8.2 (due to segv fix for 121906).
	
2003-09-11  Bill Haneman <billh@gnome.org>

	* gok/gok-feecback.h:
	* gok/gok-feedback.c:
	(gok_feedback_drop_refs):
	New; unsets global GokKey references if the
	corresponding GokKey has been deleted.
	
	* gok/gok-scanner.h:
	* gok/gok-scanner.c:
	New; unsets global GokKey references if the
	corresponding GokKey has been deleted.
	
	* gok/gok-key.c:
	(gok_key_delete): 
	Call gok_feedback_drop_refs() and gok_scanner_drop_refs()
	when a gok_key is destroyed.
	
	Fix for crasher bug (!) 121906.  This fix is a workaround;
	the bug indicates that gok-scanner and gok-feedback need to 
	use a different way of keeping track of state.

2003-09-09  Bill Haneman <billh@gnome.org>

	* gok/gok-key.c:
	(gok_key_lookup_shorter_label):
	Fix for 121018.

2003-09-09  Bill Haneman <billh@gnome.org>

	* configure.in: Version 0.8.1.

	* gok/gok-input.c:
	(gok_input_open): Fix bug which caused a g_warning to
	become fatal via null=pointer indirection.

2003-09-08  David Bolter <david.bolter@utoronto.ca>

	* configure.in: Version 0.8.0.

2003-09-08  Bill Haneman <bill.haneman@sun.com>

	* NEWS: updated for 0.8.0.

	* README: updated notes; added 'Input Device Configuration'
	section and updated the troubleshooting section.

2003-09-08  Laurent Dhima  <laurenti@alblinux.net>

	* configure.in: Added "sq" to ALL_LINGUAS.

2003-09-04  Bill Haneman <billh@gnome.org>

	* gok/gok-input.c:
	(gok_input_init):
	Pass NULL to gdk_window_add_filter instead of 'root', since GDK
	doesn't successfully handle window-specific XInput events unless
	it's compiled with explicit XInput support (see bugs #121471 and '#121477).
	
2003-08-29  Abel Cheung  <maddog@linux.org.hk>

	* configure.in: Added "mk" "zh_TW" to ALL_LINGUAS.

2003-08-28  David Bolter <david.bolter@utoronto.ca>

	* gok/gok-spy.c: null the accessible text object when the current
	window goes defunct or inactive.
	
	Fixes bug #120914

2003-08-26  David Bolter <david.bolter@utoronto.ca>

	* configure.in: updated to version 0.7.14
	
	* NEWS: updates

	* gok/gok-spy.c: moved variable declaration for picky compilers (thanks
	  Damien Carbery)

2003-08-22  David Bolter <david.bolter@utoronto.ca>

	* gok/gok-spy.c: gok_spy_has_child no longer searches descendants
	of nameless menus.  added some (commented out) code for exposing
	nameless menus as keys.
	
	Remainder of Fix for bug #119260, some improvement for bug #109187

2003-08-22  David Bolter <david.bolter@utoronto.ca>

	* gok/gok-spy.c: modified gok_spy_worth_searching such that
	non-menu-like things must have state SPI_STATE_SHOWING.
	
	Fixes bug #119260.

2003-08-21  David Bolter <david.bolter@utoronto.ca>

	* gok/: gok-spy.c, gok-spy.h: Added gok_spy_get_active_frame
	function. Moved prototype definition into
	header file. 

	* gok/gok-keyboard.c: Fixed an wrongly typed unref, and other minor
	tidying.

	* gok/callbacks.c: moved check for sticky keys from here to main.c

	* gok/main.c: added call to gok_spy_get_active_frame function
	during startup to see if there is an active frame.  moved check for
	sticky keys here from callbacks.c

	* automatic-scanning.xam, direct-selection.xam,
	dwell-selection.xam, inverse-scanning.xam: These files are now
	generated.

	* text-operations.kbd: removed unimplemented spell key.
	
	Fixes bug #120303, #113136, (partial for 119260)

2003-08-21  Padraig O'Briain <padraig.obriain@sun.com>

	* gok/gok-word-complete.c (gok_wordcomplete_predict): Check that we
	have predicted words before working on them.

	This fixes bug #120305.

2003-08-18  David Bolter <david.bolter@utoronto.ca>

	* configure.in: updated gok version to 0.7.13

	* AUTHORS, NEWS, TRANSLATORS: minor updates

2003-08-16  Guntupalli Karunakar  <karunakar@freedomink.org>

	* configure.in: Added "hi" to ALL_LINGUAS.

2003-08-14  David Bolter <david.bolter@utoronto.ca>

	* gok/gok-spy.c: improved gui search heuristic in
	gok_spy_worth_searching.

2003-08-12  David Bolter <david.bolter@utoronto.ca>

	* gok/gok-scanner.c: Temporary workaround in
	gok_scanner_read_access_method to avoid an issue that appeared
	related to bug 90500

	* gok/gok-keyboard.c: Added untranslatable string to credits.

	* gok/main.c: fixed possible endless seg fault loop.

2003-08-12  Abel Cheung  <maddog@linux.org.hk>

	* configure.in, Makefile.am: Pushing intltool requirement
	to 0.27.1 since it has INTLTOOL_XAM_RULES. (Related to #90500)

2003-08-11  Dafydd Harries  <daf@parnassus.ath.cx>

	* configure.in: Added "cy" (Welsh) to ALL_LINGUAS.

2003-08-07  David Bolter <david.bolter@utoronto.ca>

	* gok/: gok-settings-dialog.c, main.c: Robustified
	gok-settings-dialog close and added check for xkb extension in
	gok-main open function, to address bug 118648.

2003-08-06  Metin Amiroff<metin@karegen.com>

	* configure.in: Added "az" (Azerbaijani) to ALL_LINGUAS

2003-08-06  Wang Jian  <lark@linux.net.cn>

	* configure.in: Added "zh_CN" to ALL_LINGUAS.

2003-08-06  David Bolter <david.bolter@utoronto.ca>

	* gok-1.0.pc.in: corrected cspi requirement

2003-08-06  Padraig O'Briain <padraig.obriain@sun.com>

	* gok/callbacks.c (gok_discard_focus_filter): Do not call 
	XSetInputFocus for PointerRoot. See bug #106248.

	This fixes bug #118865.

2003-07-30  Dmitry G. Mastrukov  <dmitry@taurussoft.org>

	* configure.in: Added Belarusian to ALL_LINGUAS.

2003-07-25  David Bolter <david.bolter@utoronto.ca>

	* gok/gok-spy.c: Moved variable declaration for picky compilers.
	(bug 18596) Patch provided by Damien Carbery.

2003-07-24  David Bolter <david.bolter@utoronto.ca>

	* gok/gok-spy.c: minor improvement to  gui search strategy (fixes
	bug 117560)

2003-07-23  David Bolter <david.bolter@utoronto.ca>

	* gok-with-references.schemas.in, gok-with-references.schemas.m4,
	gok/gok-gconf-keys.h, gok/gok-spy.c: added gconf keys:
	gui_search_depth and gui_search_breadth, for tweaking dynamic
	interrogation of GUI. (Relates to bugs 109187, 112281)

	* gok/gok-keyboard.c: removed old debug statement

2003-07-23  Hasbullah Bin Pit  <sebol@ikhlas.com>
                                                                                
        * configure.in: Added 'ms' (Malay) to ALL_LINGUAS.

2003-07-23  Padraig O'Briain <padraig.obriain@sun.com>

	* gok/callbacks.c (gok_discard_focus_filter): If number of mapped 
	toplevels is greater than 1 and none has focus call XSetInputFocus
	on one of them. This fixes bug #118105.

2003-07-23  Padraig O'Briain <padraig.obriain@sun.com>

	* gok/callbacks.c (gok_discard_focus_filter): Call XSetInputFocus
	only if the number of mapped toplevels is not greater than 1.

2003-07-22  Padraig O'Briain <padraig.obriain@sun.com>

	* gok/callbacks.c (gok_discard_focus_filter): Call XSetInputFocus
	for PointerRoot when WM_TAKE_FOCUS atom Client Message is received.
	This ensure that Atl+Tab and Ctrl+Alt+Tab continues to work after
	metacity tries to give focus to gok window.

	This addresses bug #106248.

2003-07-21  Artur Flinta  <aflinta@cvs.gnome.org>

	* configure.in: Added "pl" in ALL_LINGUAS.

2003-07-17  David Bolter <david.bolter@utoronto.ca>

	* gok/gok-key.c: work related to using stock images.

	* gok/main.c: added program exit call to gok_close when
	implementating gok quit key.

	* gok/: gok-output.c, gok-output.h: added internal command output
	type. currently using for gok quit command.

	* Makefile.am, gok-controls.kbd: changes related to new keyboard
	for quitting gok

	* quit.kbd: adding new keyboard for quitting gok

2003-07-16  David Bolter <david.bolter@utoronto.ca>

	* gok/gok-keyboard.c: added repeat key to xkb generated compose
	keyboard. (fix for bug 117602)

2003-07-16  David Bolter <david.bolter@utoronto.ca>

	* gok/gok-spy.c: Added SPI_ROLE_FONT_CHOOSER role type to
	gok_spy_check_window.(fixes bug 117570)

2003-07-15  David Bolter <david.bolter@utoronto.ca>

	* automatic-scanning.xam, automatic-scanning.xml.in,
	direct-selection.xam, direct-selection.xml.in, dwell-selection.xam,
	dwell-selection.xml.in, inverse-scanning.xam,
	inverse-scanning.xml.in: Commented out some unused UI. Small
	changes to complete fix for bug 116903.

	* gok/: gok-scanner.c, gok-scanner.h: Added CALL_CHUNKER_CHUNK_NONE
	call type and hooked it up to new gok_chunker_chunk_none
	implementation.

	* gok/gok-chunker.c: Added gok_chunker_chunk_none implementation

2003-07-15  David Bolter <david.bolter@utoronto.ca>

	* gok/: main.c, main.h: Added check for accessiblity and related
	dialog. (partial fix for bug 116872)

	* gok/: gok-data.c, gok-data.h: added gconf client accessor

2003-07-08  David Bolter <david.bolter@utoronto.ca>

	* gok/gok-keyboard.c: Added a malloc for the "text-operations"
	target string which is later g_free'd. Should help fix bug #116688

2003-07-08  David Bolter <david.bolter@utoronto.ca>

	* gok/gok-spy.c: Improved gok_spy_stop (adding removal of
	additional event listeners).

2003-07-04  David Bolter <david.bolter@utoronto.ca>

	* gok/: gok-spy.c, gok-spy.h, main.c: Possible fix for solaris
	segmentation fault on gok main application close.  Added
	gok_spy_stop so that main can remove gok_spy's event listeners as
	soon as possible, in case as gok closes as it gets its own defunct
	events. (Possible fix for bug #116688)

	* dictionary.txt: Removed a non word.

	* inverse-scanning.xam, inverse-scanning.xml.in: Implemented repeat
	cycles.

2003-07-04  Padraig O'Briain <padraig.obriain@sun.com>

	* gok/gok-scanner.c:
	(gok_scanner_get_lang): Do not free return value from setlocale as it
	causes a crash on Solaris.
	Fix compiler warnings.
	
2003-07-02 Bill Haneman <bill.haneman@sun.com>

	* gok/gok-keyboard.c:
	(gok_keyboard_position_keys):
	Add padding to key positions when dock+expand are both true.
	(gok_keyboard_display):
	Allow for border pixels when dock+expand are both true.
	Fix for #114290 and #114053.
	
2003-07-02 Bill Haneman <bill.haneman@sun.com>

	* configure.in:
	Revved to 0.7.11.

	* Makefile.am: Temporarily removed makefile rule for *.xam files,
	since the make rule was still causing regressions due to intltool-merge
	bug #116529.

	* gok/main.c:
	Use gconf to turn on sticky keys - at request of Jody.
	This is in anticipation of having a warning dialog for when 
	StickyKeys is turned on via a non-gconf mechanism
	(see bug #105093);

	* gok/gok-key.c:
	(gok_key_status_image): 
	Fixed issue with image locations, was inconsistent between
	standard GOK images and key status icons.

	* gok/gok-scanner.c:
	(gok_scanner_get_lang): New method to get the current lang/locale for messages.
	(gok_scanner_find_node): New method, finds an element that suits the current locale.

2003-07-01 Bill Haneman <bill.haneman@sun.com>

	* configure.in: Revved to 0.7.10.
	
	* gok/gok-key.c:
	(gok_key_get_image_filename): 
	Fixed regression introduced by use of images without
	gnome_program_locate_file().

	* gok/main.c:
	(main): Set the GNOME_PARAM_APP_DATADIR to point to
	DATADIR"/gok".

	* po/README-TRANSLATORS: New file, contains notes to 
	GOK translators.

	* *.xam:
	Reinstated these files since an intltool-merge bug
	was causing regressions - until intltool-merge is fixed
	to properly merge translated attributes.

2003-06-30 Bill Haneman <bill.haneman@sun.com>

	* gok/gok-keyboard.c:
	(gok_keyboard_follow_link):
	Tweaks/improvements to hyperlink handling, works with gnome-help
	now (was blocking on gtkhtml2 bug).

	* gok/main.c:
	(gok_main_set_wm_dock):
	Hide the GOK window before docking/undocking, and show afterwards.
	Fixes glitch when floating GOK from docked state.
	
2003-06-30 Bill Haneman <bill.haneman@sun.com>

	* NEWS: updated.

	* direct-selection.xml.in: 
	* dwell-selection.xml.in: 
	* automatic-scanning.xml.in: 
	* inverse-scanning.xml.in: 
	Marked up the user-visible attribute strings
	for translation.
	
	* configure.in: Revved to 0.7.9, because of above fixes.

2003-06-30 Bill Haneman <bill.haneman@sun.com>

	* NEWS: updated.

	* configure.in: Revved to 0.7.8.

	* gok/gok-composer.c:
	(gok_composer_branch_textAction): 
	Worked around side-effect of selection, which
	moves the text insertion cursor in some implementations.
	We now make the selection in "reverse order", i.e.
	endSelection < startSelection, when selecting "backwards", 
	which preserves the existing text selection.  Fix for
	#114879.
	
2003-06-30 Bill Haneman <bill.haneman@sun.com>
	
	* Makefile.am:
	Added rule for intltool-merge of translations into
	*.xam (access method) files.

	* po/POTFILES.in:
	Added direct-selection.xml.in, dwell-selection.xml.in,
	automatic-scanning.xml.in, inverse-scanning.xml.in, and
	gok.desktop.in.

	* direct-selection.xam, dwell-selection.xam:
	* automatic-scanning.xam, inverse-scanning.xam:
	Replaced with *.xml.in, since we now merge translations into these files.
	Partially addresses bug #90500.
	
2003-06-28 Bill Haneman <bill.haneman@sun.com>

	* NE.png, NW.png, SE.png, SW.png:
	* North.png, South.png, East.png, West.png: New images for move-resize keyboard.

	* gok.png: Sample icon for apps menu.

	* Makefile.am: Include the above images in DATA.
	Include gok.desktop.in and install it.

	* gok.desktop.in:
	Revise desktop entry; fix for 115979.  "Accessibility" submenu still needs creation.
	
	* move-resize.kbd: Add images in place of unicode chars for arrows.
	Fixes #108120.
	Indicate the alignment when appropriate.
	Added "Taller, Shorter, Narrower, Wider" keys [partial fix for #98545]

	* gok/main.c:
	(gok_main_open):
	(gok_sig_handler): renamed from gok_segv_handler.
	Added signal handler for SIGTERM and SIGINT; this was necessary
	to keep from losing changes to the wordcompletion dictionary when
	stopped/killed from a console or the invoking terminal. 
	
	* gok/gok-settings-dialog.h:
	* gok/gok-settings-dialog.c:
	(gok_settingsdialog_lock): New method.
	(gok_settingsdialog_show): Desensitize Actions and Access Methods 
	dialog tabs when in "lockdown" mode.  Fix for #114740.
	
	* gok/gok-key.h:
	* gok/gok-key.c:
	(gok_key_initialize): Parse the 'align' attribute in Gok:Image.
	Don't desensitize the whole Settings button, only some
	notebook tabs, when in "lockdown" mode (Fixes #114740).
	
	* gok/gok-button.h:
	* gok/gok-button.c:
	(gok_button_new_with_label, gok_button_new_with_image):
	Take an additional parameter to indicate the desired image alignment,
	we can now left-align or right-align images.
	
	* gok/gok-keyboard.c:
	(gok_keyboard_display): Pass the image placement info to gok_button_new.

2003-06-27 Bill Haneman <bill.haneman@sun.com>

        * gok/gok.glade2:
	* gok/interface.c:
	Added labelled_by/label_for relations to
	Appearance spinbuttons.  Fixes #116192.
	
	* gok/gok-key.h:
	* gok/gok-key.c:
	Added KEYTYPE/KEYSTYLE_PAGESELECTION.

	* gok/gok-keyboard.c:
	(gok_keyboard_page_select): New method.
	Deal with KEYTYPE_PAGESELECTION;
	Fix for page tabs in UI Grab, so that page tab
	accessible objects are "activatable" by calling
	AccessibleSelection_selectChild () on their parent
	with the appropriate index.  
	(gok_keyboard_branch_byKey): Handle KEYTYPE_PAGESELECTION.
	(gok_keyboard_update_dynamic):
	Assign objects with SPI_ROLE_PAGE_TAB the gok key type
	KEYTYPE_PAGESELECTION
	
	* gok/gok-spy.c:
	(gok_spy_is_ui): Include page tabs.
	(gok_spy_find_children): Recurse into objects of type PAGE_TAB
	as well as adding them to the "ui elements" node list.
	(gok_spy_accessible_implicit_ref):
	Performance tweak; don't call getName on accessibles when not
	logging. This reduces API calls when traversing the
	accessible tree.
	
2003-06-26  David Bolter <david.bolter@utoronto.ca>

	* gok/gok-page-actions.c: minor temporary change so the the gconf
	stored input device name is not stomped on.

2003-06-25  Padraig O'Briain <padraig.obriain@sun.com>

	* gok/gok-input.c: Use single static variable for devices so that 
	we have at most one XDeviceInfo list returned by XlistInputDevices 
	not freed. [Padraig: the device should be stored in the action struct.]
	(gok_input_get_device_list): Call XFreeDeviceList on previous
	return value from XListInputDevices.
	Call g-strdup on value being put into GokInput's name field.
	(find_device_info): Call XFreeDeviceList on previous
	return value from XListInputDevices.
	(gok_input_free): Add code to free name and GokInput structure.
	(gok_input_find_by_name): Use g_strdup instead of g_strndup
	(gok_input_get_current): Use static variable to store current GokInput
	and free variable if function is called again.
	
	* gok/gok-page-actions.c 
	(gok_page_actions_initialize): Call gok_input_free for GokInput data 
	structures after calling gtk_combo_set_popdown_strings for device
	strings. Save pDevice value so calling g_slist_free works correctly.
	(gok_page_actions_input_device_changed): Call gok_input_free on
	GokInput returned by gok_input_find_by_name after use.

	This fixes memory leaks reported in bug 115108.

2003-06-20  Padraig O'Briain <padraig.obriain@sun.com>

	* gok/gok-data.c; Change a set of variables to static instead
	of global. Change type of m_eDockType from g_boolean to
	GokDockType. Fix compilation problem. This fixes bug #115252.

2003-06-19  Guntupalli Karunakar  <karunakar@freedomink.org>

	* configure.in: Added "ml" in ALL_LINGUAS.

2003-06-16  Bill Haneman <bill.haneman@sun.com>

	Happy GUADEC to all!
	
	* gok.rc:
	Added (admittedly ugly) style for selections.
	
	* text-operations.kbd: New static keyboard for
	text operations.
	
	* Makefile.am:
	Added text-operations.kbd.

	* gok/main.c:
	(gok_main_keyboard_find_byname): New method.
	(gok_main_display_scan): Use new gok_main_keyboard_find_byname
	internally.
	
	* gok/gok-composer.h:
	* gok/gok-composer.c:
	(gok_composer_show): Removed, the compose keyboard is handled by
	gok_main_display_show now.
	Added enums for GokTextCommandType, GokTextChunkType, and a GokTextCommand
	struct.
	(gok_composer_validate): New method to sensitize the appropriate keys in
	the text operations keyboard.  Needs completing!
	(gok_compose_key_init): New, initialize a GokCommand struct based
	on the key's xml node, and attach it to the key's "pGeneral" storage.
	(gok_composer_branch_textAction): Revised based on above changes
	and those in gok-key.h.  Needs refactoring, as the method is now >200 
	lines long!

	* gok/gok-editor.c:
	Changed reference to KEYTYPE_BRANCHEDITTEXT to KEYTYPE_COMPOSE.
	
	* gok/gok-key.h:
	* gok/gok-key.c:
	(gok_key_initialize):
	KEYTYPE_BRANCHEDITTEXT -> KEYTYPE_BRANCHCOMPOSE.
	Handle xml strings for type "navigate", "edit", "select", and
	"select-toggle".
	Assign an RC style for KEYSTYLE_SELECT.
	
	* gok/gok-keyboard.c:
	KEYTYPE_BRANCHEDITTEXT -> KEYTYPE_BRANCHCOMPOSE.
        Put target "text-operations" in the editable text key 
	on the compose (i.e. "core") keyboard.
	(gok_keyboard_follow_link): Modified hack 
	[temporarily broken with gtkhtml2, fix in progress.]
	(gok_keyboard_branch_editableTextAction):
	Assign gok_spy_get_accessibleWithText() return value to
	pKeyboard->pAccessible.
	Removed KEYTYPE_ACCESSIBLETEXT and KEYTYPE_EDITABLETEXT type usage.

	* gok/gok-spy.c:
	(gok_spy_get_accessibleWithEditableText): Changed to
	gok_spy_get_accessibleWithText since we currently use this only for 
	the text operations keyboard, which can operate with only
	AccessibleText and not only AccessibleEditableText.
	
2003-06-13  Bill Haneman <bill.haneman@sun.com>

	* configure.in: 0.7.7
	* NEWS: updated.
	* gok-keyboard.c:
	(gok_keyboard_add_keys_from_xkb_geom): Fixed
	uninitialized variable 'rightmost'.

2003-06-13  Padraig O'Briain <padraig.obriain@sun.com>

	* gok/gok-input.c (find_device_info): Add extended_only argument	
	in order to find correct extension device.
	(gok_get_input_device): Remove unused function.
	(gok_input_find_by_name): pass entenxed_only value to find_device_info. 

	* gok/interface.c (create_dialogSettings): Remove redundant calls to
	gtk_widget_show for entry field of GtkCombo.
	
2003-06-12  Bill Haneman <bill.haneman@sun.com>
	
	* gok/gok-output.h:
	Changed OUTPUT_KEYSYM, etc. from #defines to an enum,
	GokOutputType.  Added OUTPUT_KEYSTRING.

	* gok/gok-output.c:
	(gok_output_send_to_system): Handle new "KEYSTRING" output type,
	using at-spi keystring synthesis API.
	(gok_output_new): Create new output type.
	
	* gok/gok-word-complete.h:
	(gok_wordcomplete_predict): 
	Changed to take a const gunichar instead of a const gchar.
	
	* gok/gok-word-complete.c:
	m_pWordPart: delete fixed array, use pointer word_part instead.
	Correct spelling of 'separators'. 
	(gok_wordcomplete_predict): 
	Use UTF-8 concatenation of word_part when adding letters amd use
	g_utf8_strlen when deciding its length.
	Change lengthWordPart to length,
	initialize statusPrediction to 0.
	Only predict if word_part != NULL.
	Check for backspace/rubout characters and trim word_predict
	accordingly [Fix for #109183.]
	Reset the word_predict (and call end_word) if the 
	character input is neither backspace nor 'printable', i.e.
	it isn't alphanumeric at all.  We make exception for the
	'non break space' character so that we can word-complete
	tokens that contain non-breaking-space.  (May need to revisit
	this if we do spell-checking per-se on documents that include
	NBS in them for purely visual reasons).
	(gok_wordcomplete_get_output): Make UTF-8 safe; use KEYSTRING output type.
	(gok_wordcomplete_endWord): free and NULL word_part.

2003-06-11  Padraig O'Briain <padraig.obriain@sun.com>

	* configure.in: Correct checking for HAVE_XINPUT. This should fix
	bug #110268.

2003-06-10  David Bolter <david.bolter@utoronto.ca>

	* gok/: gok-composer.c, gok-key.h, gok-keyboard.c: Added selection
	features to gok text manipulation.

2003-06-09  David Bolter <david.bolter@utoronto.ca>

	* gok/gok-spy.c: Fixed a minor bug with major consequence. 
	gok_spy_append_node was allowing objects with no name through,
	breaking many dynamic keyboards. Also fixed a build warning by
	adding a function prototype for gok_spy_is_menu_role.

2003-06-09  Bill Haneman <bill.haneman@sun.com>

	* gok/callbacks.c:
	(on_window1_realize): Disable the minimize, maximize, and close
	window manager buttons, since we don't want to do those things
	with GOK (i.e. doing them will cause problems for the user).
	Fixes #107917.
	
        * gok/main.c:
	(gok_main_check_sticky_keys):
	Fixed overly-aggressive warning dialog :-)
	
	* gok/gok-composer.c: 
	(gok_composer_branch_textAction): 
	Added implementations of char, word, sentence left and right.

2003-06-09  Bill Haneman <bill.haneman@sun.com>

        Fixes for #114726 and #109188.

	* configure.in: Revved to 0.7.7.
	
	* gok/main.c:
	(gok_main_check_sticky_keys):
	New method, checks for presence of XKB and StickyKeys
	feature.  Warns user and exits if XKB is not found;
	Turns on StickyKeys, warns, and continues if StickyKeys
	was not enabled at startup time.

	* gok/callbacks.c:
	(on_window1_realize): Add call to gok_main_check_sticky_keys ().
	
	* Makefile.am: Added mouse.kbd.

	* mouse.kbd: New file, mouse-control keyboard.
	Allows not only pointer latching, but mouse movement and
	clicks from GOK.

	* gok/gok-mousecontrol.h:
	* gok/gok-mousecontrol.c:
	(gok_mouse_control_init):  Initialize the commands for
	a mouse control key from the XML node.
	(gok_mouse_control): New method, execute mouse control
	commands via AT-SPI.

	* gok/gok-key.c:
	Add #include gok-mousecontrol.h.
	(gok_key_initialize): Changed xml string that controls 
	pointer latching to "pointer" from "mouse".
	Parse "mouse" and "mousebutton" for mouse control 
	commands.
	Set mousebutton keys to "insensitive" if we are using a 
	corepointer-based action in our access method.
	(gok_key_set_button_name):
	Move POINTERCONTROL style to share GtkStyle with 
	WordComplete instead of Normal, so that it can be
	easily distinguished from other keys.

	* gok/gok-key.h:
	Added KEYTYPE_MOUSE, KEYTYPE_MOUSEBUTTON,
	and corresponding KEYSTYLES.
	
	* gok/gok-keyboard.c:
	Changed GOK_SPY_SEARCH_ROLE call in 
	KEYTYPE_BRANCHMENUITEMS case to GOK_SPY_SEARCH_MENU.
	Similar change for SPI_ROLE_MENU.
	Handle KEYTYPE_MOUSE and KEYTYPE_MOUSEBUTTON,
	e.g. call gok_mouse_control ().

	* gok/gok-scanner.c: 
	(gok_scanner_current_state_uses_corepointer):
	New method (incomplete).
	
	* gok/gok-spy.c: 
	(gok_spy_had_child_aux): Handle GOK_SPY_SEARCH_MENU case; 
	different fix for child finding.
	(gok_spy_insert_node): changed to
	(gok_spy_add_node): Fixes reordering of UI elements in
	UI Grab.
	(gok_spy_has_child_aux): Added sanity check for non-zero 
	name when doing a SEARCH_MENU, to avoid adding separators.
	(gok_spy_append_node): Don't append a Text node with
	no name, no label, no content, if it's also not
	editable.
	
  
2003-06-09  David Bolter <david.bolter@utoronto.ca>

	* gok/gok-spy.c: fixed children finding.
  
2003-06-09   Bill Haneman <bill.haneman@sun.com>

	Improvements for #108091 (now closed).

	* Makefile.am: Added small-empty.png.
	
	* small-empty.png: New, used as placeholder for modifier-shift status.

	* gok/gok-button.c:
	(gok_button_expose):
	Handle the "shift" modifier expose slightly differently, by drawing an arrow
	as a polyline.  Currently we always draw the arrow for modifiers, but fill it with
	PRELIGHT only when the modifier is active.

	* gok/gok-key.c:
	(gok_key_from_xkb_key): Set the button's indicator type to "shift" and
	set has_image to TRUE if the key is a modifier.
	(gok_key_initialize): Set keyimage and keyimage type for .kbd-file modifier keys.
	(gok_key_status_image): #ifdef'd out the status images for now, since we're using gtkstyle 
	drawing primitives for the status indication at the moment.

	* gok/gok-keyboard.c:
	(gok_keyboard_display): Initialize indicator type for modifier keys.

	* gok/gok-modifier.c:
	(gok_modifier_update_modifier_keys): Set the latched and locked states on 
	modifier keys.  Don't append the "+" to keystrings anymore since that's 
	now redundant with the indicator graphics.
	
2003-06-09   Bill Haneman <bill.haneman@sun.com>

        Fix/feature for RFE #108091.

	* gok/gok/main.h:
	* gok/gok/main.c:
	(gok_main_get_login): New method.
	
	* Makefile.am:
	* gok/empty.png: New image
	* gok/gok-button.c:
	(gok_button_expose): New method, intercept the expose event and draw 
	indicators if appropriate.
	(gok_button_class_init): Add expose to our virtual method table.
	(gok_button_init): Initialize the indicator_type to "checkbutton".

	* gok/gok-button.h: Adde indicator_type field.

	* gok/gok-key.c:
	(gok_key_status_image): Return an image which may display status
	information (for states that don't use checkboxes/radiobuttons),
	or an empty image into which we draw indicators.
	(gok_key_create_image_widget): Handle IMAGE_TYPE_INDICATOR case.
	(gok_key_update_toggle_state): Set indicator_type to "radiobutton" if
	key->ComponentState.radio is TRUE.

	* gok/gok-key.h:
	Add latched/locked bits to GokUIState.
	Add IMAGE_TYPE_INDICATOR to image types.
	Add some padding to our bitfields in case some compilers prefer it.
	
	* gok/gok-keyboard.c:
	(gok_keyboard_update_dynamic):
	Added SPI_ROLE_TOGGLE_BUTTON and SPI_ROLE_TOGGLE_MENU_ITEM.
	to the BRANCHGUIACTIONS case.  Set has_image to TRUE for these
	components, and add INDICATOR keyimages to them.  Set
	key->ComponentState.active flag based on whether they 
	have SPI_STATE_CHECKED.


2003-06-08  David Bolter <david.bolter@utoronto.ca>

	* gok/gok-key.c: now sets settings keys to insensitive when --login
	is used.

2003-06-08  David Bolter <david.bolter@utoronto.ca>

	* gok/gok-key.c: now sets keys which bring up the preferences
	dialog insensitive if prefs_locked gconf key is true. (Fixes bug#109182)

	* gok/gok-gconf-keys.h: added GOK_GCONF_PREFS_LOCKED def.

	* gok-with-references.schemas.in, gok-with-references.schemas.m4:
	added prefs_locked boolean key.

	* gok/gok-keyboard.c: fixed my recently introduced bug making
	gok_modifier_press recurse infinitely.

2003-06-08  David Bolter <david.bolter@utoronto.ca>

	* gok/: gok-keyboard.c, gok-composer.c, gok-key.h: Further work on
	108323 (editable text keyboard).

	* gok/: gok-repeat.c, gok-repeat.h: Fixed compiler warnings and
	removed an unused enum.

	* gok/gok-scanner.c: Added output to stderr when access method name
	is not recognized.

	* gok/gok-data.c: Added check for overriden access method name
	(which can now be done via a command line argument).

	* gok/gok-spy.c: removed some obsolete debug logging..

	* gok/: main.c, main.h: Added command line arguments
	--access-method, --input-device (not used yet), --keyboard
	(overrides main keyboard). Added accessors. Towards a fix for bug
	108319

2003-06-07  David Bolter <david.bolter@utoronto.ca>

	* gok/gok-key.c: Fix for bug#114654 (bug summary:some labels not
	displayed)

2003-06-07  David Bolter <david.bolter@utoronto.ca>

	* configure.in: Revved micro version to 6.  New feature: repeat
	mode.

	* move-resize.kbd: Added a repeat (toggle) key. Needs decoration to
	describe toggle status.


	* automatic-scanning.xam, direct-selection.xam, directed.xam,
	dwell-selection.xam, inverse-scanning.xam: Added state "repeat" to
	describe how this access method works when gok is in repeat mode.
	(exception: directed.xam, which is currently not used)

	* gok/gok-modifier.c: Changed call from gok_keyboard_output to
	newly named gok_keyboard_output_key.

	* gok/: gok-keyboard.c, gok-keyboard.h: Some code coalescence and
	minor gok internal API changes related to gok key repeat work.

	* gok/: gok-key.c, gok-key.h: Added is_repeatable boolean property
	and a convenience method for checking if a key is repeatable:
	gok_key_isRepeatable(GokKey*).

	* gok/: gok-data.c, gok-data.h: Added skeletal get and set for
	repeat rate settings.

	* gok/gok-chunker.c: Reset gok repeat mode in
	gok_chunker_state_restart.

	* gok/: gok-scanner.c, gok-scanner.h: Added access method call case
	CALL_SCANNER_REPEAT_ON to put the current access method in it's
	"repeat state", the handlers for this state are specified in the
	.xam (access method XML files) files.  Added gok_scanner_repeat_on
	utility function.

	* gok/: Makefile.am, gok-repeat.c, gok-repeat.h: First commit of
	repeat.c repeat.h


2003-06-05      Bill Haneman <bill.haneman@sun.com>

	* Makefile.am: Added hide.kbd.

	* hide.kbd: New mini-keyboard with one button ("Show), for "hiding" GOK.

	* move-resize.kbd: Added a "Hide" button.

	* gok/gok-keyboard.h
	Add "expand" and GokKeyboardExpandPolicy enum.
	Add "expand" attribute to <GOK:keyboard> xml element.
	
	* gok/gok-keyboard.c:
	(gok_keyboard_add_keys):
	Set the "expand" attribute of keyboards. Default is "sometimes", i.e.
	depending on the gconf key.  Other values are "never" and "always".

	* gok/main.h:
	* gok/main.c:
	(gok_main_resize_window): Added pKeyboard param, and only
	set struts to non-zero if the keyboard is a docking keyboard.
	Also, check the keyboard's expand policy when calculating width, as well
	as checking the gconf key.
	(gok_main_ds): Raise the keyboard as a precaution.
	
2003-06-05      Bill Haneman <bill.haneman@sun.com>

	* Makefile.am: Add gok-controls.kbd and goklogo.png to dist.
	
	* gok-controls.kbd: New keyboard which branches to
	various GOK controls, i.e. Window, Preferences, Help, and About.
	Note that "Window" is still retained on main.kbd for the moment, but
	it is expected to migrate.

	* gok-main.kbd: Replace "Preferences" with "GOK", and
	reorder so that most-frequently-used commands are upper-left.

	* move-resize.kbd: Added dock buttons, float button.  Changed widths, 
	moved "back" to its usual place at the beginning of the branched kbd.
	
	* goklogo.png: New file, icon for 'About'.

	* gok/callbacks.c: call gok_main_set_wm_dock() for better
	code reuse.

	* gok/main.c:
	(gok_main_set_wm_dock): New method, migrated from callbacks.c.
	(gok_main_update_struts): Fix in dock-type case statement.

	* gok/main.h: 
	(gok_main_set_wm_dock): New.

	* gok/gok-data.c:
	(gok_data_set_dock_type): Fixed this method, it was mistakenly named before.

	* gok/gok-key.c:
	(gok_key_initialize): Handle "branchSettings", "dock", "help", 
	and "about" types in XML/kbd files.

	* gok/gok-key.h:
	Added KEYTYPE/KEYSTYLE ABOUT and DOCK.

	* gok/gok-keyboard.c:
	(gok_keyboard_help): New, displays help.
	(gok_keyboard_about): New, shows the 'About' dialog.
	(gok_keyboard_dock): New, invokes a dock/undock (aka "float") action.
	(gok_keyboard_output_selectedkey): Deal with DOCK, HELP, and ABOUT keytypes.

2003-06-05      Bill Haneman <bill.haneman@sun.com>

	* configure.in: Revved micro version to 0.7.5.
	
	* gok/gok-keyboard.c:
	(gok_keyboard_update_dynamic): Make editable text fields insensitive 
	if they don't include state EDITABLE.
	* gok/gok-spy.c:
	(gok_spy_append_node, gok_spy_free):
	Changed pName from an SPI string to a gchar*, i.e. we
	g_strdup() the SPI string and SPI_freeString() on-the-spot,
	then g_free the pName in gok_spy_free.  This is because we
	need to do some manipulation/concatenation of pName
	sometimes (if the accessible's name was empty, for instance).
	(gok_spy_append_node):
	Cope with "nameless" text entry fields by using the first
	three words of their content as a name, or else just labelling them
	as empty text widgets.

2003-06-04      Bill Haneman <bill.haneman@sun.com>
	* gok/gok-key.h:
	Added KEYSTYLE_HYPERLINK and KEYTYPE_HYPERLINK, and
	KEYSTYLE_BRANCHTEXT and KEYTYPE_BRANCHTEXT,
	KEYSTYLE_HELP and KEYTYPE_HELP.
	
	* gok/gok-key.c:
	(gok_key_set_button_name):
	Added case for KEYSTYLE_HYPERLINK, so appropriate GtkStyle is applied.
	Fixed mismatch between text and button styled for 
	BRANCHTEXT and BRANCHALPHABET - at the moment neither is defined in
	gok.rc however.  David?	
	
	* gok/gok-spy.c:
	(gok_spy_insert_node): New method.
	(gok_spy_append_node): Special-case
	hypertext nodes; we add one node per hypertext link
	when adding nodes in the UI Grab keyboard.
	Each such button uses the Hypertext's link-text
	as its label.
	Refactored to use gok_spy_insert_node, for better
	code reuse.
	(gok_spy_worth_searching): Removed test of
	"enabled" since some modes worth searching don't 
	expose the "enabled" state.

	* gok/gok-keyboard.c:
	Added #include of <X11/keysymdef>, required by method
	(gok_keyboard_focus_object): new method, used for hypertext and 
	editable text.
	(gok_keyboard_follow_link): new method; workaround for
	a current limitation of gtkhtml2's hyperlink objects.
	Should be removed when gtkhtml2 gets fixed.
	(gok_style_if_enabled): Convenience method which applies a style
	conditionally if an object is enabled, otherwise applies style
	KEYSTYLE_INSENSITIVE.
	(gok_keyboard_update_dynamic): 
	Handle case of key whose accessible 
	implements AccessibleHypertext; this case isn't currently exercised and
	might be removed in favor of the "one key per link" model.
	Use convenience method above.
	Handle case of a 'text' key which is a hyperlink key in case statement.
	Initialize text-entry fields to type BRANCHTEXT.
	(gok_keyboard_output):
	Refresh the dynamic keyboard after doing a "gui action" if a branch
	did not result - because the action may have altered the UI state.
	(gok_keyboard_output_selectedkey):
	Handle HYPERLINK case: this too is a workaround for the gtkhtml2
	limitation, but should work for other hypertext objects like mozilla
	content too.
	Also handle BRANCHTEXT case, focussing the text object before
	branching to the compose keyboard.
	
	* gok/gok-spy-priv.h:
	Added two fields to AccessibleNode; a one-bit is_link field, and
	a 7-bit 'link' field.  This probably should be extended and 
	generalized.
	

2003-06-04      Bill Haneman <bill.haneman@sun.com>

	* gok/gok-keyboard.c:
	(gok_keyboard_output_selectedkey): 
	Handle KEYTYPE_BRANCHHYPERTEXT case.
	Reformat switch statement to linux indenting rules.
	(gok_keyboard_branch_byKey): Added KEYTYPE_BRANCHHYPERTEXT case.
	(gok_keyboard_update_dynamic): 
	Renamed pNodeAccessibleCount to pNodeAccessibleNext, since it's an
	iterator and I was confused by the old name ;-).
	Changed a commented-out block regarding ROLE_APPLICATION to 
	an #if-0'd out block.
	Removed a special-case block ("cruft") for SPI_ROLE_PUSH_BUTTON since
	we no longer need it (due to yesterday's changed to gok_spy_get_list).
	Changed a log message to call Accessible_getRoleName().
	Handle SPI_ROLE_TEXT and SPI_ROLE_HTML_CONTAINER in our case statement.
	We'll probably want to change this to an interface query eventually.
	Set pKey->Type and Style to BRANCHALPHABET for SPI_ROLE_TEXT ui components.
	Set pKey->Type to KEYTYPE_BRAHCNHYPERTEXT for SPI_ROLE_HTML_CONTAINER components.
	(gok_keyboard_branch_gui):
	Removed unneeded test for GOKSPY_ROLE_APPLICATION.
	Changed case statement to switch on search_type primarily, and
	role only secondarily (if search type == GOK_SPY_SEARCH_ROLE).
	Note that this is where the 'APPLICATION' case now lives; it's 
	a GOK_SPY_SEARCH type, GOK_SPY_SEARCH_APPLICATION.  Still currently unused.
	Pass new argument to gok_spy_has_child in all cases.
	
	* gok/gok-spy.h:
	* gok/gok-spy.c:
	(gok_spy_has_child, gok_spy_has_child_aux): Now we pass a 
	GokSpySearchType parameter as well as an AccessibleRole, so
	that we can do different kinds of search logic.
	
	
2003-06-03      Bill Haneman <bill.haneman@sun.com>

	* gok/gok-key.h:
	(GokKeyActionType): Renamed from KeyTypes, and
	added KEYTYPE_BRANCHHYPERTEXT.
	(GokKey): Changed Type from gint to GokKeyActionType.

	* gok/gok-keyboard.h:
	(GokKeyboard): Changed Role to search_role.
	Added GokKeyboard->search_type.

	* gok/gok-keyboard.c:
	(gok_keyboard_branch_byKey): 
	Pass GokSpySearchType to gok_keyboard_branch_gui() as
	second parameter; different types depending on the KEYTYPE.
	(gok_keyboard_update_dynamic): Pass new GokSpySearchType parameter
	to gok_spy_get_list.
	(gok_keyboard_branch_gui): Add search type parameter.

	* gok/gok-spy.h:
	(GokSpySearchType): New enum.
	
	* gok/gok-spy.c:
	(gok_spy_find_children, gok_spy_create_list): Added search param.
	(gok_spy_accessible_is_okay): Added a check for dead objects,
	not ideal but functional and works around some segfaults.
	Removed a previous sanity check that was malfunctioning.
	(gok_spy_worth_searching): Don't search "inactive" containers.
	(gok_spy_is_visible): New, checks VISIBLE and SHOWING states.
	(gok_spy_is_ui): New, used to select UI items for display in
	the UI Grab keyboard.
	(gok_spy_find_children): Change the test logic to account for
	different search types.

2003-05-30      Bill Haneman <bill.haneman@sun.com>

	Implements RFE #109325.  (No UI exposure yet, only gconf keys)
	
	* gok/gok-gconf-data.h:
	Added two new keys, 
	"/apps/gok/dock_type" and "/apps/gok/expand"
	
	* gok/gok-data.h:
	Added GokDockType enum, and declarations for methods below.
	
	* gok/gok-data.c:
	(gok_data_initialize): Init the new properties (expand is true, dock is none).
	(gok_data_set_dock_type): New.
	(gok_data_get_dock_type): New.
	(gok_data_set_expand): New.
	(gok_data_get_expand): New.
	(gok_data_dock_type_from_string): Convenience method for
	convering from gconf string to enum.

	* gok/gok-keyboard.c:
	(gok_keyboard_display):
	If the 'expand' gconf key is true, always resize to fill
	the screen width.

	* gok/main.h:
	(gok_main_update_struts): New declaration.
	* gok/main.c:
	Add #include XAtom.h.
	(gok_main_update_struts):
	(gok_main_create_window):  Add boolean to indicate if
	the created window should be a dock.
	Pass the boolean to the "realize" signal handler.
	(gok_main_resize_window):
	Don't tell GOK to ignore the resize if we're a dock.
	Set top and left appropriately if we're a dock, so that
	we're packed to either the top or bottom of the screen.
	Similarly, tweak the "Width" if we're an expanding dock.
	Call gok_main_update_struts() when we resize, so the window
	manager knows we're occupying a different space.
	Don't subtract the frame size if we're a dock, since we have 
	no decorations.
	(gok_main_update_struts):
	New method to set the strut allocations with the X server.

	* gok/callbacks.c:
	(on_window1_realize): Set window type to _WM_TYPE_DOCK if 
	gok's docktype is not GOK_DOCK_NONE.

	* gok-with-references.schemas.m4:
	Added the 'expand' and 'dock_type' schema rules.
		
2003-06-02  David Bolter <david.bolter@utoronto.ca>

	* gok/gok-spy.c: Improvements include smarter interrogation based
	on role.

2003-05-30  David Bolter <david.bolter@utoronto.ca>

	* gok/gok-button.c: fixed build error when using flag
	--enable-logging-exceptional.

2003-05-30  Calum Benson  <calum.benson@sun.com>

	* gok.glade2:
	* gok/interface.c: (create_dialogSettings), (create_windowEditor):

	Fixed button spacing in Preferences dialog, as per HIG.
	Fixes #113836.

2003-05-30      Bill Haneman <bill.haneman@sun.com>

	* gok/gok-button.h:
	* gok/gok-button.c:
	(gok_button_new_with_image): Changed prototype to 
	take a GtkWidget instead of a filename - allows
	creating of different kinds of images (icons, pixmaps, etc.)
	Removed unneeded prefix padding of image, of 2 pixels.

	* gok/gok-key.c:
	Change the "filename" of a key image from being content to
	the "source" attribute.  Allow another attribute, "type", 
	to be "stock" | "fixed" | "fit" | "fill".
	Support specification of image size, via
	'type="fixed:x,y"' (where x and y are integer sizes).
	(gok_keyimage_set_size_from_spec):
	New method, initialized size from the "type" 
	attribute as above.
	(gok_key_initialize): Read the new attributes on the <image> element.
	(gok_key_get_image): Return a GokKeyImage*.
	(gok_key_create_image_widget): Create a GtkImage widget for
	a GokKeyImage, setting the size if appropriate.
	(gok_keyimage_new): Initialize the w and h fields to "-1" for
	"unspecified".

	* gok/gok-key.h:
	New enums, GokImageType and GokImagePlacementPolicy.
	New members in the GokKeyImage struct for size,
	stock_size (i.e. GtkIconSize), width and height.
	New prototypes as above.

	* gok/gok-keyboard.c:
	Use gok_key_create_image_widget() in place of 
	gok_key_get_image_filename(), when parsing a .kbd file.
	
2003-05-29      Bill Haneman <bill.haneman@sun.com>

	* gok/configure.in:
	Incremented the binary age and interface ages so that the libtool versioning
	works out compatibly with the earlier version.

	* gok/dictionary.txt:
	Added helpful words like "hello", "linux", "dear", corrected "numerous".

	* gok/gok-button.h:
	Added GtkBox child to GokButton, add GtkBox and GtkImage members.
	Added new declarations (see gok-button.c).
	* gok/gok-button.c:
	(gok_button_init):
	Changed allocation to use g_object_new().  Add a new GtkBox on init,
	and show it.  Init the pImage member to NULL.
	(gok_button_new_with_label):
	Init pNewButton to NULL, refactor.  We now add the label to the
	GtkHBox and pack it to the end.
	(gok_button_new_with_image):
	Init pNewButton to NULL, refactor.  Add the image to the GtkHBox and pack.
	(gok_button_set_image): New method.
	(gok_button_set_label): New method.

	* gok/gok-data.h:
	* gok/gok-data.c:
	(gok_data_get_valuator_sensitivity, gok_data_set_valuator_sensitivity):
	New methods for calibrating the valuator sensitivity for XInput devices.
	
	* gok/gok-key.h:
	Replaced the KEYDISPLAY #defines and ImageCode field with two 
	boolean bitfields, have_image and have_text.  New declarations
	(see below).
	
	* gok/gok-key.c:
	(gok_key_modifier_for_keycode): Exposed this method, no longer static.
	(gok_key_initialize): Init the new fields (above). Allow both text and images
	in XML key definitions.
	(gok_key_new) : Ditto.
	Changed a lot of asserts (pLabel != NULL) to ifs.
	(gok_key_get_image): New method, gets the GtkImage for a new GOK key.

	* gok/gok-keyboard.c:
	(gok_keyboard_display): Now allow both images and text.  Removed some unused
	and commented-out code for images which was not being used.

	* gok/gok-output.c:
	(gok_output_send_to_system): Make smarter about case and modifiers!

	* gok/gok-scanner.c:
	(gok_scanner_input_motion):
	Account for valuator sensitivity.

	* gok/gok-spy.[hc]:
	(gok_spy_get_modmask): New method.

	* gok/gok-word-complete.c:
	(gok_wordcomplete_add_new_word): Skeleton of future method.

	* gok/main.c:
	(gok_main_motion_listener):
	Account for valuator sensitivity.
	* gok/word-complete.c:
	Added enum for WORD_CASE, so that we can tell how to 
	capitalize words for display and input.  Due to a bug in at-spi,
	we still cannot reliably input words in ALLCAPS however.
	(DetermineCase, WordCompleteApplyCase): New methods.


2003-05-29	David Bolter <david.bolter@utoronto.ca>

	* gok/: gok-button.c, gok-key.c, gok-key.h, gok-keyboard.c: Added
	image display capability.
	* configure.in: Increased the micro version.
	* gok-1.0.pc.in: Increased the cspi requirement.
	
	GOK can now display images on keys. This work is derived from work done by 
	Steven Baker (srbaker@pobox.com) and so most of the blame for this commit
	goes to him.

2003-05-28  Alessio Frusciante  <algol@firenze.linux.it>

	* configure.in (ALL_LINGUAS): Added "it" (Italian) 

2003-05-28  Danilo Å egan  <dsegan@gmx.net>

	* configure.in: Added "sr" and "sr@Latn" to ALL_LINGUAS.

2003-05-14	David Bolter <david.bolter@utoronto.ca>

	* gok/gok-spy.c: Reintroduced defunct listener to improve GOK awareness
	of application closes.

003-05-13  Calum Benson  <calum.benson@sun.com>

	* gok.glade2:
	* gok/callbacks.c:
	* gok/callbacks.h:
	* gok/gok-settings-dialog.c: (gok_settingsdialog_open):
	* gok/interface.c: (create_dialogSettings), (create_windowEditor):
	* gok/support.c: (lookup_widget):
	* main.kbd:

	HIG-ification of settings dialog, fixes #112851 and #112852.
	(Mostly, there's still some work to do on the Access Methods tab
	that can't be done in the Glade file).

2003-05-09  Bill Haneman <bill.haneman@sun.com>

	* gok.rc:
	Completed fix of bug 105798: removed font-size and font-face specification.
	(previously applied patch was not complete).


2003-05-06  David Bolter <david.bolter@utoronto.ca>

	* gok/word-complete.c: removed unecessary malloc.h import so that
	gok builds on FreeBSD without issue.

2003-05-05  KAMAGASAKO Masatoshi  <emerald@gnome.gr.jp>

	* configure.in: Added "ja" to ALL_LINGUAS.

2003-04-24  Abel Cheung  <maddog@linux.org.hk>

	* configure.in: Added "da" to ALL_LINGUAS.

2003-04-21  David Bolter <david.bolter@utoronto.ca>

	* gok/: gok-composer.c, gok-keyboard.c, gok-keyslotter.c, main.c,
	main.h: Added an "--extras" command line argument for using
	possibly unstable features.  Added some editable text functionality
	which can be branched to from the compose keyboard.  Removed some
	old text navigation features that were broken by the new modifier
	work.

2003-04-09  Bill Haneman <bill.haneman@sun.com>

	* configure.in: Increased version to 0.7.1
	
	* gok.glade2 : Major changes to Settings dialog,
	in particular the Actions dialog page.  These changes
	rationalize the UI with respect to input device types
	(corepointer, xinput-device, joystick) and gesture
	types (on-enter, on-dwell, etc.).
	Fixes bugs 101141, 105798 (along with change to gokrc),
	improvements to 92670.

	* gok/Makefile.am: Added keyboard-geometry test.
	
	* gok/keyboard-geometry.c: New file, tests/diagnoses
	issues with XkbGeometry.  Useful to GOK debuggers and
	developers.

	* gok/callbacks.h:
	* gok/callbacks.c:
	Changes to support new settings dialog.
	(on_radiobuttonTypeValuator_toggled): added.
	(on_radiobuttonDoubleClick_toggled): removed.
	(on_action_type_notebook_change_current_page): moved.
	(on_2d_valuator_radiobutton_toggled, on_1d_radiobutton_toggled): Added.
	(on_activate_on_enter_button_toggled):
	(on_activate_on_dwell_button_toggled):
	(on_pointer_delay_spinbutton_changed):
	(on_key_averaging_button_toggled):
	(on_xinput_device_button_toggled):
	(on_core_pointer_button_toggled):
	(on_joystick_button_toggled):
	Added.

	* gok/gok-action.h:
	(ACTION_TYPE_VALUECHANGE): New action type (currently unused).

	* gok/gok-page-actions.c:
	(gok_page_actions_initialize): Always call
	gok_page_actions_update_controls.
	(gok_page_actions_toggle_type_switch):
	Update the notebook page when type toggles,
	so that the correct UI components are shown.
	(gok_page_actions_toggle_type_valuator): New.
	(gok_page_actions_update_controls):
	Major revision to handle new controls and action types.
	(gok_page_actions_toggle_type_mousebutton):
	(gok_page_actions_toggle_type_dwell):
	(gok_page_actions_toggle_type_mousepointer):
	Removed.
	(gok_page_actions_toggle_source_corepointer):
	(gok_page_actions_toggle_source_joystick):
	(gok_page_actions_toggle_source_input):
	(gok_page_actions_toggle_type_valuator):
	Added.
	
2003-04-04  Simon Bates <simon.bates@utoronto.ca>

	* configure.in: Increased version to 0.7.0

	* README: Added a paragraph explaining that this is an unstable
	release of GOK and that it might crash or behave unexpectedly.
	Added a section explaining how to report bugs.

2003-04-04  David Bolter <david.bolter@utoronto.ca>
            Simon Bates <simon.bates@utoronto.ca>

	* gok/gok-spy.c:
		Added window activate and deactivate listeners.  Improved 
		queue processing.  Some added implementation commented out
		until further testing.

	* gok/gok-spy-priv.h:
		Added window activate and deactivate event types.

2003-03-27  Padraig O'Briain <padraig.obriain@sun.com>

	* gok/gok-spy.c (gok_spy_process_accessible): Remove unnecessary 
	comment.

2003-03-24  Padraig O'Briain <padraig.obriain@sun.com>

	* gok/callbacks.c gok/gok-scanner.c gok/gok-spy.c
	gok/switchapi.c gok/word-complete.c: Remove C++ style comments.

2003-03-12  Bill Haneman <bill.haneman@sun.com>

	* gok/gok-scanner.c:
	(gok_pointer_clip_to_window):
	Add a 'buffer' around constraint window, to give
	someplace for the dwell pointer to idle.
	Fix for #108319.
	(gok_scanner_get_slop): New method.
	
2003-03-12  Bill Haneman <bill.haneman@sun.com>

	Fixes for bugzilla #97834, #106955, #107275, #108091, #108117.
	
	* gok/gok-key.c:
	Now #include gok-modifier-keymasks.h.
	(gok_key_lookup_shorter_label): Added some more
	cases for shifted keys.
	(gok_key_label_from_keysym_string): Improved
	definition formatting, removed "FIXME" comment.
	(gok_key_get_numlock_mask): Moved static out of method.
	(gok_key_from_xkb_key):
	Use 'numlock' lookups to avoid having to assign strings for 
	both 'mod2' and 'mod3'.
	(gok_key_get_label_length): 
	(gok_key_get_label_height): 
	Moved these methods to silence compiler.
	(gok_key_update_label):
	Test label length to make sure it still fits on the key
	since it might have changed due to the shift state.
	Reset the font size if necessary.
	
	* gok/gok-keyboard.c
	(gok_keyboard_update_dynamic):
	Reformatted switch statement to Linux/GNOME standards.	
	Add implementation/support for checkbutton/radiobutton
	UI components.  Added Style specification for 
	components so that the BRANCHGUIACTIONS style is used for
	GUIACTIONS buttons.
	(gok_keyboard_branch_gui_actions):
	Set the 'active' member of pKey after taking action
	if the UI component has toggled between checked/unchecked.
	(gok_keyboard_output_selectedkey):
	Add 'void' to definition/prototype.
	
	* gok/gok-modifier.c:
	(gok_modifier_first_name_from_mask):
	We now return 'numlock' if the mask matches the server's
	idea of the 'numlock' state.
	
	
2003-03-11  Bill Haneman <bill.haneman@sun.com>

	* gok/gok-key.h:
	Added KEYTYPE_MOVERESIZE.

	* gok/gok-key.c:
	(gok_key_initialize): 
	Handle "move-resize" keys in .kbd.

	* gok/gok-keyboard.h:
	(GokKeyboardDirection): New enum.
	(gok_keyboard_parse_direction): New method.
	* gok/gok-keyboard.c:
	(gok_keyboard_output_selectedkey): 
	Handle MOVERESIZE case.
	[Fixes 106075]

	* gok/gok-output.c:
	(gok_output_send_to_system):
	Perform keycode-to-keysym conversion for
	OUTPUT_KEYCODE keys, and pass to word completion.
	[Fixes 107198]
	
	* gok/gok-spy.c:
	(gok_spy_button_is_switch_trigger):
	Return FALSE if accessmode is 'directselection' 
	and corepointer is outside of any window known to GOK.
	[Fixes 106533]

	* gok/gok-scanner.c:
	(gok_scanner_current_state_uses_core_mouse_button): 
	Stylistic change to function definition.
	
	* gok/main.h:
	* gok/main.c:
	(gok_main_display): New method.
	(gok_main_window_contains_pointer): New method.
	
2003-03-10  Bill Haneman <bill.haneman@sun.com>

	* gok.glade2:
	* gok/interface.c:
	Changed name of widget from "radiobutton1SwitchRelease" to
	"radiobuttonSwitchRelease" (typo in glade).
	
2003-03-10  Bill Haneman <bill.haneman@sun.com>

	* gok/gok-button.c:
	(gok_button_leave_notify):
	Remove m_bKeyEntered flag. 
	Ignore 'leave_notify' events that occur within the
	key's event window (they are from context switches
	or XGrabButton events).
	Fixes #105142.
	

2003-03-08  Evandro Fernandes Giovanini <evandrofg@ig.com.br>

	* configure.in(ALL_LINGUAS): Added "pt_BR".

2003-03-06  Duarte Loreto <happyguy_pt@hotmail.com>

        * configure.in: Added "pt" to ALL_LINGUAS.

2003-03-05 Bill Haneman <bill.haneman@sun.com>

	* gok/main.c:
	(gok_main_display_scan_previous):
	Cleaned up use of "//" comment.

	* gok/gok-button.h:
	Add conventional macros for GOK_IS_BUTTON, 
	GOK_BUTTON, etc.
	
	* gok/gok-button.c:
	(gok_button_state_changed):
	Check to make sure the state-change widget is
	a GokButton before calling gok_button_find_key, etc.

	* gok/gok-scanner.c:
	(gok_scanner_on_key_leave):
	Added call to gok_feedback_set_selected_key (NULL)
	(gok_scanner_stop):
	Call gok_feedback_set_selected_key (NULL).

	* gok/callbacks.c:
	(on_window1_leave_notify_event): 
	Removed call to gok_scanner_on_key_leave(), since
	it's redundant with button_leave events and conflicts with
	'button-grab' leave/enter event pairs cause by XGrabButton.

2003-02-28 Padraig O'Briain <padraig.obriain@sun.com>

	* gok/callbacks.c:
	Add include of gok-spy.h and gok-data.h
	(gok_xkb_filter): Add cast to function argument.

	* gok/command-vertex-data.c: 
	Add include of strings.h.

	* gok/command-vertex.c (command_edge_weight_sort):  Correct typo in
	comparison.

	* gok/gok-data.h:
	Correct typo in name of gok_data_get_use_xkb_kbd.

	* gok/gok-input.c:
	Add include of gconf/gconf-client.h and gok-gconf.h
	Add FIXME in gok_input_free.

	* gok/gok-input.h:
	Add gok_input_free.

	* gok/gok-key.c:
	* gok/gok-keyboard.c: 
	* gok/gok-output.c: 
	* gok/gok-scanner.c:
	* gok/test-gok-bounds.c:
	Add casts in various function calls.

	* gok/gok-key.h:
	Add gok_key_set_effective_group and gok_key_get_effective_group.

	* gok/gok-page-accessmethod.c (gok_page_accessmethod_fill_combos):
	Specify type of parameter as gboolean

	* gok/gok-page-actions.c (gok_page_actions_set_numvber): Remove code
	after return statement.

	* gok/gok-page-actions.h:
	Add gok_page_actions_input_device_changed.

	* gok/gok-word-complete.h:
	* gok/word-complete.h:
	Run dos2unix on file.

	gok/main.c:
	Move parameter handling variables out of main functions.
	Add casts in various function calls.

	These changes fix bug #106430.
	
2003-02-28  Pablo Gonzalo del Campo  <pablodc@bigfoot.com>

	* configure.in: Added "es" (Spanish) to ALL_LINGUAS.

2003-02-26 Bill Haneman <bill.haneman@sun.com>

	* gok/gok-key.c:
	(gok_key_level_for_type): Changed function prototype and reworked to use
	Xkb's XkbType record in order to convert from a modifier
	mask to a key level.  This approach is technically more
	correct than the previous approach, which implemented the "default" 
	behavior for the canonical key types only.

2003-02-24 Simon Bates <simon.bates@utoronto.ca>

	* gok-with-references.schemas.in, gok-with-references.schemas.m4,
	gok.glade2, gok/interface.c: Removed spaces before punctuation to
	address bug 103670,
	http://bugzilla.gnome.org/show_bug.cgi?id=103670.

2003-02-24 Simon Bates <simon.bates@utoronto.ca>

	* gok/gok-modifier.c (gok_modifier_get_state): Output (gok_log_x)
	the name of the modifier in the case that the modifier requested
	cannot be found.

2003-02-19 Simon Bates <simon.bates@utoronto.ca>

	* gok/gok-scanner.c (gok_scanner_handler_uses_button): Clearer
	comment.
	(gok_scanner_handler_uses_core_mouse_button): Do not call
	gok_scanner_handler_uses_button because a handler does not have to
	contain a state.  If a state exists then it overrides the
	associated action but it does not have to be there.
	(gok_scanner_current_state_uses_core_mouse_button): _considerably_
	more efficient implementation.  Makes use of the fact that the
	scanner has already processed the access method and actions and
	determined which inputs have handlers associated with them.

	* gok/gok-spy.c (gok_spy_button_is_switch_trigger): log value of
	gok_data_get_drive_corepointer().

2003-02-19  David Bolter <david.bolter@utoronto.ca>

	* gok/gok-key.c: removed some naughty in-place variable
	declarations recently introduced.

2003-02-18  Bill Haneman <bill.haneman@sun.com>

	* gok/gok-key.c:
	(gok_key_label_from_keycode):
	Workaround for an XSun bug which causes XkbTranslateKeySym to
	return an unreasonable and incorrect 'nbytes' return value.

2003-02-18  Bill Haneman <bill.haneman@sun.com>

	* gok/gok-key.c:
	(gok_key_lookup_shorter_label):
	Complete fix for bugzilla #106104.

2003-02-17 Simon Bates <simon.bates@utoronto.ca>

	* gok/gok-spy.c:
	(gok_spy_button_is_switch_trigger): If
	gok_data_get_drive_corepointer is FALSE then use
	gok_scanner_current_state_uses_core_mouse_button.

	* gok/: gok-scanner.c, gok-scanner.h:
	(gok_scanner_handler_uses_button): Return TRUE if the state of the
	specified GokScannerHandler uses a mouse button and FALSE
	otherwise.
	(gok_scanner_handler_uses_core_mouse_button): Return TRUE if the
	specified GokScannerHandler in the specified access method is
	currently configured to use an action that uses the core mouse
	button button and FALSE otherwise.
	(gok_scanner_current_state_uses_core_mouse_button): Return TRUE if
	the current scanner state has a handler that is configured to use
	an action that uses the specified core mouse button and FALSE
	otherwise.

2003-02-17  Bill Haneman <bill.haneman@sun.com>

	* gok/gok-key.c:
	(gok_key_lookup_shorter_label):
	Convert MixedCase labels to multi-line format.	
	Fix for bugzilla #106104, and generally useful for
	keeping labels short.
	
2003-02-17 Padraig O'Briain <padraig.obriain@sun.com>

	* gok/gok-page-actions.c (gok_page_actions_initialize): Check
	that we have devices to avoid warning messages on startup.
	Bug #106084.
	
2003-02-14  Bill Haneman <bill.haneman@sun.com>

	* configure.in: Revved to 0.2.0.

	* Makefile.am: create and install Keyboard.kbd.

	* gok-with-references.schemas.in:
	Added schema data for use_xkb_geom boolean (true by default).

	* gok-with-references-schemas.m4:
	Added mkschema rule for use_xkb_geom.

	* main.kbd:
	Changed size so that most keys span two column cells;
	allows bigger fonts to be used.
	[Part of fix for 95416]
	Changed compose keyboard name from "qwerty" to "Keyboard".
	Added 'Window' and 'Pointer' keys.
	Rearranged other keys, removed nonfunctioning 'back' key.

	* gok/callbacks.c:
	#include <X11/Xatom.h> added.
	(gok_xkb_filter): New method for intercepting Xkb 
	notifications (for instance, group status changes, etc.)
	(gok_input_extension_filter): Reformatted to 'linux' standard.
	(on_window1_realize): Added call to gtk_window_stick().
	[Fixes 106069]
	(on_window1_realize): Add gok_xkb_filter, select for xkb events.
	(on_window1_button_release_event): New.
	(on_window1_button_toggle_event): New, needed to check and toggle
	state of modifier keys in GOK.
	(on_window1_enter_notify_event): New, used to control cursor
	visuals and also in unlatching the core pointer after a "Pointer"
	request from the user.

	* gok/callbacks.h:
	(on_window1_button_toggle_event, on_window1_enter_notify_event,
	on_window1_leave_notify_event) : 
	New public declarations from callbacks.c

	* gok/gok-button.c:
	(gok_button_get_type): Changed g_type_unique call to use
	type macro instead of foo_get_type() call; changed button type to
	inherit from GtkToggleButton.

	* gok/gok-button.h:
	#include <gtk/gtkbutton.h> added.
	Changed GokButton to inherit from GtkToggleButton, allows
	better visuals for latched GOK keys.

	* gok/gok-composer.c:
	(gok_composer_show):
	Changed gok_main_display_scan calls to use KEYBOARD_TYPE param.

	* gok/gok-data.c:
	(m_bDriveCorePointer): initialize to FALSE, 
	don't get this from gconf anymore.
	(m_bUseXkbKbd) : added.
	(gok_data_read_setting): Don't get bDriveCorePointer from gconf,
	get m_bUseXkbKbd from gconf.
	(gok_data_get_use_xkb_kbd) : New.
	(gok_data_set_use_xkb_kbd) : New.
	(gok_data_set_drive_corepointer): Don't set the gconf key.
	
	* gok/gok-data.h:
	(gok_data_get_use_xkb_kbd) : New.
	(gok_data_set_use_xkb_kbd) : New.
	
	* gok/gok-gconf-keys.h:
	#define GOK_GCONF_USE_XKB_KBD : New.
	
	* gok/gok-key.c:
	[Fixes for 100880 and 93428]
	#include <string.h> added.
	(gok_key_lookup_shorter_label):	New, allows string substitution
	and use of multi-line labels for some keys.
	(gok_key_label_from_keysym_string): New.
	(gok_key_get_numlock_mask) : New.
	(gok_key_get_xkb_type_index) : New, gets the 'type' index for 
	a given keycode/group combo.  See Xkb spec.
	(gok_key_level_for_type): New, Returns the level for a modmask and type.
	(gok_key_label_from_keycode) : New, used to create dynamic compose kbds.
	(gok_key_keycode_from_xkb_key): New.
	(gok_key_get_default_border_height, gok_key_get_default_border_width): 
	New, [Fixes 106073]
	(gok_key_get_default_font_size): New, returns the default app font size.
	(gok_key_modifier_for_keycode): Determines the key modifier, if any, 
	associated with a keycode.  New.
	(gok_key_get_effective_group, gok_key_set_effective_group): New. 	
	(gok_key_from_xkb_key) : New.
	(gok_key_new): Changed to handle 'branchModal' types.
	[In support of 106075]
	Added support for 'PointerControl' key [Fixes 106077].	
	Support for FONT_SIZE_GROUP_GLYPH added [improves 92670].
	(gok_key_get_label): Added support for 'groups', improves
	international keyboards.
	(gok_key_update_toggle_state): New.
	(gok_key_get_label_length, gok_key_get_label_height): New. 
	(gok_key_calculate_font_size) : Fixes for some brokenness in
	algorithms, and also place a ceiling on the font size
	of 'application font size' for multi-glyph labels, and
	'application font size * 150%' for glyph keys.
	(gok_key_get_label_lengthpercall, gok_key_get_label_heightpercell):
	Fixes.
	* gok/gok-key.h:
	#define XK_MISCELLANY
	#include <X11/Xlib.h>
	#include <X11/keysymdef.h>
	#include <X11/XKBlib.h?
	#include <X11/extensions/XKBgeom.h>
	Added.
	Keytypes: added KEYTYPE_POINTERCONTROL and KEYTYPE_BRANCHMODAL
	Keystyles: added KEYSTYLE_POINTERCONTROL and KEYSTYLE_BRANCHMODAL
	Added FONT_SIZE_GROUP_GLYPH definition.
	Added GOK_MODMASK_CURRENT definition. (?CHECK THIS?)
	GokKey struct: added gint Section member; keyboards can now
	have sections as well as rows and columns.
	(gok_key_update_toggle_state): new public method.
	
	* gok/gok-keyboard.c:
	#include <X11/Xlib.h>
	#incluee <X11/Xutil.h> added.
	added GOK_KEYBOARD_MAX_ROWS, set to 24.
	Added static data for Xkb keyboard description tracking.
	NOTE: some of the methods below should probably be moved to
	their own source file in the future.
	(gok_keyboard_get_xkb_desc) : New, [for 100880, etc.].
	(gok_keyboard_xkb_select): New.
	(gok_keyboard_notify_xkb_event) : New.
	(gok_keyboard_get_section_row): New.
	(gok_keyboard_section_row_columns) : New.
	(gok_keyboard_get_section_column) : New.
	(gok_keyboard_xkb_geom_sections_init) : New.
	(gok_keyboard_add_keys_from_xkb_geom) : New.
	(gok_keyboard_get_display) : New.
	(gok_keyboard_get_core) : New, returns a GokKeyboard describing
	the core system keyboard, via Xkb.
	(gok_keyboard_read) :
	bug fixes to line drawing.
	(gok_keyboard_display) : Remove C++-style comments (!).
	Also changes to support KEYBOARD_LAYOUT_FITWINDOW layout type, 
	some keyboards aren't supposed to resize the GOK window.
	Fixes to help make sure GOK key labels always et resized as they should.
	(gok_keyboard_branch_byKey) :
	Changed to support the new branch types.
	(gok_keyboard_modifier_is_set) : New.

	* gok/gok-keyboard.h:
	Add #includes to XKBlib.h and XKBgeom.h.
	Add KEYBOARD_LAYOUT_FITWINDOW definition 
	(used, for instance, by the 'move-resize' keyboard)
	(KeyboardTypes): Added UNSPECIFIED and MODAL types.
	gok_xkb_base_event_type : 
	Added this extern. Perhaps this should be refactored so
	as not to be exported...
	(gok_keyboard_get_display, gok_key_from_xkb_key): New.
	(gok_keboard_get_xkb_desc, gok_keyboard_notify_xkb_event): New.

	* gok/gok_modifier-keymasks.c:
	Added 'mod2, mod3, mod4' keymasks.

	* gok/gok-modifier.c:
	(gok_modifier_update_modifier_keys): 
	Update the toggle state of the keyboard when modifier state changes.
	(gok_modifier_first_name_from_mask):
	Necessary evil for the moment, to bridge between X modifier state
	and GOK's modifier definitions.

	* gok/gok-modifier.h:
	(gok_modifier_first_name_from_mask): See above.

	* gok/gok-output.c:
	(gok_output_send_to_system):
	Handle the OUTPUT_KEYCODE output type.

	* gok/gok-scanner.c:
	(gok_scanner_input_motion): 
	Return motion_data after clipping to window.
	Fixes to enter/exit pointer selection behavior, keeps GOK from
	outputting a key that doesn't look selected.

	* gok/gok-spy.c:
	(gok_spy_button_is_switch_trigger):
	Changed to return FALSE if the gok_data_get_drive_corepointer
	flag is TRUE, i.e. if GOK is currently in the
	a corepointer-latch state.
	
	* gok/gok-windowlister.c:
	(gok_windowlister_show):
	Pass the new TYPE param to gok_main_display_scan.

	* gok/main.c:
	(gok_main_display_scan_main):
	Pass the new TYPE param to gok_main_display_scan.
	(gok_main_display_scan): Add a TYPE parameter.
	(cursor_bits): New static data used to display 'invisible' cursor.
	(gok_main_set_cursor): New.
	(gok_main_motion_listener): Warp the core pointer along with 
	XInput valuator events when GOK is in the 'drive corepointer' state.
	[Fixes 106077]
	(gok_main_create_window): Add listener for 'enter_notify_event' signal.
	(gok_main_read_keyboards_from_dir):
	Support the UseXkbKbd flag, and build a compose keyboard that way
	if the flag is TRUE. [100800, etc.]
	We only read keyboards named "Keyboard.kbd" if this flag is not
	turned on...

	* gok/main.h:
	(gok_main_display_scan): Changed prototype.
	
2003-02-10  Christophe Merlet  <redfox@redfoxcenter.org>

	* configure.ac: Added "fr" (French) to ALL_LINGUAS.

2003-02-03  Daniel Yacob  <locales@geez.org>

	* configure.ac: Added "am" (Amharic) to ALL_LINGUAS.

2003-01-29  Abel Cheung  <maddog@linux.org.hk>

	* configure.in: Removed traditional Chinese (zh_TW) from ALL_LINGUAS,
	  and added German (de).

2003-01-28 Simon Bates <simon.bates@utoronto.ca>

	* Makefile.am: Rule 'webdoc' generates a file gokwebdoc.tar.gz
	containing documentation to place on the gok web site.  README,
	INSTALL and an html version of help/gok/C/gok.xml are included.

2003-01-22  David Bolter <david.bolter@utoronto.ca>

    Possibly fixes bug 103478 (need confirmation)

	* gok/gok-spy.c: improved ui tree search by checking object state
	before looking at children.

2003-01-16 Bill Haneman <bill.haneman@sun.com>

	Fix for nasty problem with Direct Selection using 
	core pointer mouse buttons.
	
	* gok/main.c:
	(gok_main_window_create):
	Added listener for gtk's GdkCrossing events
	"leave_notify_event".

	* gok/callbacks.h:
	* gok/callbacks.c:
	(on_window1_leave_notify):
	New method which calls gok_scanner_on_key_leave to 
	explicitly deselect the last key selected by a corepointer
	motion event.

	* gok/gok-spy.c:
	(gok_spy_button_is_switch_trigger):
	Refined test to detect use of corepointer buttons by 
	DirectSelection access methods.
	
2003-01-15 Bill Haneman <bill.haneman@sun.com>

	* gok/gok-spy.c:
	(gok_spy_add_idle_handler):
	Changed call to gtk_idle_add to g_idle_add, silences 
	warning.
	(gok_spy_idle_handler):
	Added gpointer param, to silence warning.
	(gok_spy_button_is_switch_trigger):
	Fixed to correctly detect switch trigger button actions, if
	a scanning method is using corepointer buttons as its trigger actions.

2003-01-14 Bill Haneman <bill.haneman@sun.com>

	Changes to support use of XInput devices for
	switches and valuators; used by all GOK access modes.
	
	* configure.in:
	Added tests for the XInput extension, and we define 
	HAVE_XINPUT.
	Revved version to 0.1.1.

	* gok-with-references.schemas.m4
	New gconf keys, "/apps/gok/input_device", string,
	default empty; "/apps/gok/drive_corepointer", bool,
	default false.
	
	* gok-with-references.schemas.in:
	New gconf keys for /apps/gok/input_device and
	/apps/gok/drive_corepointer.

	* gok.glade2:
	Reduced some border sizes to fit dialog on 800x600 display.
	Added combobox for 'InputDevice' to 'switch' group.

	* gok/Makefile.am:
	Added gok-input.c and gok-input.h to gok sources.

	* gok/callbacks.c:
	#include <gdk/gdkx.h>, <gok-input.h>, and <gok-gconf-keys.h>.
	(gok_input_extension_filter): New filter function for 
	XInput extension events on the root window.
	(on_window1_destroy): Changed for rename of gok_main_button_listener.
	(gok_discard_take_focus_filter): Renamed gok_discard_focus_filter.
	(on_window1_realize): Call gok_input_init().
	(on_window1_button_event): Changed to call gok_feedback_set_selected_key()
	and gok_keyboard_output_selectedkey(); this means that direct selection 
	with the core pointer device always works when core pointer events are not
	consumed.
	(on_entry_input_device_changed): New method, signal handler for
	signals from the new input device combobox on the settings->actions
	page.

	* gok/callbacks.h:
	Added on_entry_input_device_changed.

	* gok/gok-action.c:
	* gok/gok-action.h:
	Added code to handle ACTION_TYPE_KEY. (For XInput keyboard-type
	devices).  (Not really connected to the UI yet.)

	* gok/gok-chunker.h:
	Removed unused function gok_chunker_set_selected_key().

	* gok/gok-data.c:
	(m_bDriveCorePointer): Added new static.
	(gok_data_read_settings): Read the 'drive_corepointer' key.
	(gok_data_get_drive_corepointer): New method.
	(gok_data_set_drive_corepointer): New method.

	* gok/gok-data.h:
	(gok_data_set_drive_corepointer, gok_data_get_drive_corepointer): New.

	* gok/gok-gconf-keys.h:
	#define GOK_GCONF_DRIVE_COREPOINTER.
	#define GOK_GCONF_ACTION_TYPE_BUTTON	
	#define GOK_GCONF_INPUT_DEVICE

	* gok/gok-key.h:
	* gok/gok-key.c:
	(gok_key_contains_point): New method.

	* gok/gok-keyboard.h:
	(gok_keyboard_paint_pointer, gok_keyboard_unpaint_pointer):
	(gok_keyboard_find_key_at):
	New methods.
	
	* gok/gok-keyboard.c:
	m_oldPointerX, m_oldPointerY: state vars. 
	[should really think about moving to private structs]
	(gok_keyboard_paint_pointer): New method to paint a gok-specific
	pointer in a keyboard window.
	(gok_keyboard_unpaint_pointer): Clears the gok pointer.
	(gok_keyboard_display): Pass the GokKey struct to the signal handler 
	for button_press_events, so that the event handler can directly 
	activate the GokKey in the 'corepointer direct selection' case.
	(gok_keyboard_find_key_at): New method.
	
	* gok/gok-page-actions.c:
	#include "gok-input.h".
	(GSList * pDevice): new static.
	(gok_page_actions_initialize):
	Initialize the Input Device combobox.
	(gok_page_actions_input_device_changed):
	New handler for input device combobox change events.
	(gok_page_actions_update_controls):
	Added calls to gok_page_actions_enable_input_controls ();
	(gok_page_actions_enable_input_controls): New method to
	enable/disable the input device combobox.

	* gok/gok-page-actions.h:
	(gok_page_actions_enable_input_controls): New method.

	* gok/gok-scanner.c:
	#include gok-keyboard.h and main.h.
	(m_pContainingKey, m_OffsetX, m_OffsetY): 
	New state variables [should consider moving to struct].
	(gok_pointer_clip_to_window): New method which confines
	a pointer/valuator's coordinates to a window.
	(gok_scanner_input_motion): New handler for motion
	changes from input device valuators.

	* gok/gok-scanner.h:
	(gok_scanner_input_motion): New.

	* gok/gok-spy.c:
	(gok_spy_button_is_switch_trigger):
	Now return FALSE always, since the previous heuristics
	don't work (and aren't necessary) for XInput devices.

	* gok/gok-interface.c: GLADE-GENERATED FILE. See gok.glade2.

	* gok/main.c:
	#include <gdk/gdkx.h>.
	(main): pass gok_main_mousebutton_listener to gok_spy_register_mousebuttonlistener.
	(gok_main_motion_listener): New method, deals with xinput valuator
	and non-core-pointer motion events.
	(gok_main_button_listener): 
	Renamed from gok_main_mousebutton_listener; listens to xinput button
	events and is called for other button events under some conditions
	(for instance, when corepointer events are associated with gok
	actions).
	(gok_main_mousebutton_listener):
	Called when core pointer button events occur.

	* gok/main.h:
	(gok_main_motion_listneer, gok_main_button_listener) :New, for
	input device events.

	* gok/support.c: GLADE-GENERATED: see gok.glade2.
	
2003-01-14 Simon Bates <simon.bates@utoronto.ca>

	* gok/: gok-modifier-keymasks.c, gok-modifier-keymasks.h: Relates
	the modifier names used in gok keyboard XML files to libspi
	keymasks by defining an array, gok_modifier_keymasks, of (modifier
	name, libspi keymask) pairs.

	* gok/Makefile.am: Added gok-modifier-keymasks.c and
	gok-modifier-keymasks.h

	* gok/gok-spy.c (gok_spy_modifier_listener): Loop through
	gok_modifier_keymasks to process the modifier bit array instead of
	one if/else pair for each modifier.

	* docs/notification-of-change-in-modifier-state: Documents the
	notification of change in modifier state in GOK.

2003-01-14 Simon Bates <simon.bates@utoronto.ca>

	* gok/gok-action.c (gok_action_close): Moved the code for storing
	the actions in GConf to its own function,
	gok_action_store_actions_in_gconf().

	* gok/main.c (gok_main_open): Check the return value of
	gok_feedback_open() and exit if FALSE.

2003-01-08 Simon Bates <simon.bates@utoronto.ca>

	* README: Added a section about the gok keyboard editor and
	removed the explicit reference to "yelp".

2003-01-07 Simon Bates <simon.bates@utoronto.ca>

	* gok/gok-spy.c: Initialised spy_handler_id to 0.

2003-01-07  Kjartan Maraas  <kmaraas@gnome.org>

	* configure.in (ALL_LINGUAS): Added "no".
	
2003-01-07  David Bolter <david.bolter@utoronto.ca>

	* gok/gok-spy.c: added clean up of internal event queue on close.

2002-12-20 Simon Bates <simon.bates@utoronto.ca>

	* gok/main.c: Define gok error exit codes as macros. 
	(gok_main_open): Use new error exit code macros, test the return
	value of gok_action_open.

	* gok/gok-action.c: gok_action_open nows returns with FALSE if
	GConf problems occur.

2002-12-19 David Bolter <david.bolter@utoronto.ca>

	* gok/: gok-spy.c, gok-spy.h, gok-spy-priv.h: robustified internal
	event queue.  we now listen to defunct events and add to internal
	queue if appropriate (fixes bug #90673).  attempts to check
	accessible* validity were added and commented out.  other misc.
	changes.

	* gok/: gok-keyboard.c, main.c: minor changes.

2002-12-16 Simon Bates <simon.bates@utoronto.ca>

	* README: Added an Overview section with contents:
	`help/gok/C/extract_overview help/gok/C/gok.xml`

	* help/gok/C/gok.xml: Rewrote the Overview section.

2002-12-13 Simon Bates <simon.bates@utoronto.ca>

	* configure.in: Increased the versions of cspi and libspi that we
	are dependent on from 1.1.6 to 1.1.7

2002-12-12 Simon Bates <simon.bates@utoronto.ca>

	* help/gok/C/extract_overview: This script extracts the Overview
	section from the GOK User Manual and writes it to stdout.  This can
	be used for example to insert the Overview into the GOK README
	file.

	* help/gok/C/gok.xml: Reformatted the Overview section so that it
	can be extracted by an awk script and for example inserted into the
	GOK README file.

	* README: Added a section describing currently known issues with
	gok.

2002-12-12 Simon Bates <simon.bates@utoronto.ca>

	* INSTALL: Added a note on the nature of GOK's dependency on AT-SPI
	and the potential for loosening it.

2002-12-11 Simon Bates <simon.bates@utoronto.ca>

	* help/gok/C/gok.xml, README: Added a section on using Sticky Keys
	to perform latching and locking of modifiers in gok.

2002-12-11 Simon Bates <simon.bates@utoronto.ca>

	* AUTHORS: Added the GOK authors.

	* gok/gok-spy.c: Added a test for SPI_KEYMASK_MOD4 to
	gok_spy_modifier_listener.

	* gok-1.0.pc.in: Added libspi-1.0 to the list of requirements.

	* configure.in: Increased the gok version number to 0.1.0 
	Increased the version number of at-spi on which we are dependent to
	1.1.6

	* gok/Makefile.am: Added test-gok-log.pl to EXTRA_DIST.

	* INSTALL: Added a note to the Installing section explaining that
	gconfd will need to be restarted and made some cosmetic changes.

	* README: Added a section on how to view the GOK User Manual using
	yelp and a section to the Troubleshooting section that provides a
	possible solution if the GOK User Manual is not listed in yelp.

	* help/gok/C/gok-C.omf: Moved the gok user manual to
	GNOME|Accessibility.

2002-12-10 Simon Bates <simon.bates@utoronto.ca>

	* INSTALL: Added AT-SPI and libwnck to the requirements.

2002-12-10 David Bolter <david.bolter@utoronto.ca>

	* gok/: gok-keyboard.c, gok-keyboard.h, gok-spy.c: added a check
	for when suspected leaf objects actually have children with
	interesting roles, and branch to a keyboard of the children as
	necessary.  this check is done before activation of a suspected
	leaf object (e.g. menu item). (Fixes bug 90671)

2002-12-02 Simon Bates <simon.bates@utoronto.ca>

	* gok/: gok-data.c, gok-gconf-keys.h: Fixed bug 99234: Added a
	GConf key /apps/gok/access_method_settings/workaround that enables
	gok to record its access method settings without requiring that
	gconfd be restarted.

	* gok/: gok-action.c, gok-feedback.c: Replaced the text for the
	GConf workaround key with the macro GOK_GCONF_WORKAROUND_TEXT which
	is defined in gok-gconf-keys.h

2002-11-29 Simon Bates <simon.bates@utoronto.ca>

	* README, gok/main.c: Added a note explaining that if gok fails to
	find its GConf keys it may be because gconfd needs to be
	restarted.  This happens after the gok GConf schemas are initially
	installed - gconfd needs to be restarted before applications can
	read the newly installed schemas.

2002-11-28 Simon Bates <simon.bates@utoronto.ca>

	* gok/main.c: Rewrote the descriptions for the command line flags
	--geometry and --remembergeometry to make them more
	understandable.

2002-11-27 Simon Bates <simon.bates@utoronto.ca>

	* automatic-scanning.xam, inverse-scanning.xam: Set the default
	actions to switch actions instead of mouse button actions.

2002-11-27 Simon Bates <simon.bates@utoronto.ca>

	* gok/Makefile.am: Added test-gok-feedback.

	* configure.in: Updated the versions of the required modules in
	PKG_CHECK_MODULES.

2002-11-27 Padraig O'Briain <padraig.obriain@sun.com>

	* gok/gok-spy.[ch]:
	(gok_spy_idle_handler): New function to add idle handler
	gok_spy_idle_handler() to check spy queues.
	(gok_spy_remove_idle_handler): New function to remove idle handler
	(gok_spy_idle_handler): Idle handler to check spy queues. This is a 
	one-shot idle handler rather than being called continuously as
	gok_idle_handler was.

	* gok/gok-main.c:
	(gok_idle_handler): Remove this function. It is replaced by 
	gok_spy_idle_handler).
	(main): Use gok_spy_add_idle_handler and gok_spy_remove_idle_handler
	to add and remove idle handlers.

	This fixes bug #97924.

2002-10-24 Simon Bates <simon.bates@utoronto.ca>

	* gok/gok-spy.c: Fixed some references that were being leaked in
	gok_spy_find_children.  Rewrote gok_spy_append_node and
	gok_spy_find_children.  Added more logging output for tracking
	references to gok_spy_accessible_ref, gok_spy_implicit_ref and
	gok_spy_accessible_unref.

2002-10-22 Chris Ridpath <chris.ridpath@utoronto.ca>

	* gok/: gok-feedback.c, gok-scanner.c, main.c: Key flashing is
	not started if user is branching to another keyboard. Fixes bug
	that caused a crash when branching from dynamic keyboard.

2002-10-22 Chris Ridpath <chris.ridpath@utoronto.ca>

	* gok/: gok-modifier.c, gok-spy.c: Added 'capslock' as a standard
	modifier.

	* gok/interface.c, directed.xam, dwell-selection.xam, gok.glade2,
	inverse-scanning.xam, direct-selection.xam, gok.glade,
	row-column.xam: Added text "100s of a second" to spin button
	controls.

	* gok/gok-modifier.c: Fixed bug - when a key is pressed the shift,
	ctrl and alt modifiers are not turned off by us.

	* gok/: gok-modifier.c, gok-modifier.h: The modifiers 'shift',
	'ctrl' and 'alt' are added when the modifiers are initialized. 
	These modifiers do not output pre/post wrappers.  Added a new
	function to set the sate of these modifiers.

	* Makefile.am: Removed coded input for now because it's not working
	properly.  Should be returned soon.

2002-10-22 Simon Bates <simon.bates@utoronto.ca>

	* gok/main.c: Disabled the GNOME crash dialog by adding:
	LIBGNOMEUI_PARAM_CRASH_DIALOG, FALSE to the call to
	gnome_program_init.  Also replaced GNOME_PARAM_APP_DATADIR,
	DATADIR with the more general GNOME_PROGRAM_STANDARD_PROPERTIES.

	* gok/Makefile.am: PREFIX, SYSCONFDIR and LIBDIR are now defined
	in INCLUDES.  This was done so that they would be defined for
	GNOME_PROGRAM_STANDARD_PROPERTIES in the call to
	gnome_program_init in main.c.

2002-10-21 Simon Bates <simon.bates@utoronto.ca>

	* qwerty.kbd: Changed the shift, control and alt keys to type
	"modifier".  These keys now provide visual feedback of their
	state.  Keys that have a shifted output, for example "1" outputs
	"!" when shifted, are now labeled with their unshifted output when
	shift is not on and their shifted output when shift is on.  For
	example the "1" key has a label "1" when shift is off and "!" when
	shift is on.

	* gok/gok-spy.c: GOK now provides visual feedback on the state of
	the shift, control and alt modifiers.  Added a listener,
	gok_spy_modifier_listener, for the SPI events
	"keyboard:modifiers".  The listener calls gok_modifier_set_state
	for "shift", "ctrl" and "alt".

2002-10-17 Simon Bates <simon.bates@utoronto.ca>

	* gok/main.c: Fixed a bug that was causing a segmentation fault
	when dynamic keyboards were being deleted: in
	gok_main_display_scan_previous_premade an array was being indexed
	at -1.  gok_segv_handler now notifies the user on stderr that gok
	is closing due to a segmentation fault.

2002-10-16 Chris Ridpath <chris.ridpath@utoronto.ca>

	* gok/: gok-page-feedbacks.c, interface.c: Removed the '.sound'
	filter from the sound feedback file selector.  Users can now load
	any file as a sound feedback.

	* gok/: callbacks.c, callbacks.h, interface.c: Replaced the message
	handler for the settings dialog delete event.

	* gok/gok-keyboard.c: All keys are now set to 'released' state when
	keyboard is displayed.	This fixes bug that caused some branch keys
	to appear 'pressed'.

	* gok/gok-settings-dialog.c: Fixed help button call due to change
	in Glade UI creation.

	* gok/gok-settings-dialog.c: Removed the call for setting mnemonics
	on dialog controls because this is now done as part of the Glade UI
	creation.

2002-10-16 Simon Bates <simon.bates@utoronto.ca>

	* launcher.kbd: Increased the size of the launcher buttons to 2x1
	rather than 1x1 so that the text can be larger.  Renamed the "Web
	Browser" button to "Netscape".

2002-10-11 Chris Ridpath <chris.ridpath@utoronto.ca>

	* gok/: arraylist.c, arraylist.h, callbacks.c, command-common.h,
	command-edge-data.c, command-edge-data.h, command-edge.c,
	command-edge.h, command-graph.c, command-graph.h,
	command-predictor.c, command-predictor.h, command-vertex-data.c,
	command-vertex-data.h, command-vertex.c, command-vertex.h,
	global.c, global.h, gok-action.c, gok-action.h, gok-bounds.c,
	gok-bounds.h, gok-branchback-stack.c, gok-branchback-stack.h,
	gok-button.c, gok-button.h, gok-chunker.c, gok-chunker.h,
	gok-composer.c, gok-composer.h, gok-control.c, gok-control.h,
	gok-data.c, gok-data.h, gok-editor.c, gok-editor.h, gok-feedback.c,
	gok-feedback.h, gok-gconf-keys.h, gok-gconf.c, gok-gconf.h,
	gok-key.c, gok-key.h, gok-keyboard.c, gok-keyboard.h,
	gok-keyslotter.c, gok-keyslotter.h, gok-log-priv.h,
	gok-log-reader.c, gok-log-reader.h, gok-log.c, gok-log.h,
	gok-modifier.c, gok-modifier.h, gok-output.c, gok-output.h,
	gok-page-accessmethod.c, gok-page-accessmethod.h,
	gok-page-actions.c, gok-page-actions.h, gok-page-feedbacks.c,
	gok-page-feedbacks.h, gok-page-keysizespace.c,
	gok-page-keysizespace.h, gok-page-wordcomplete.c,
	gok-page-wordcomplete.h, gok-predictor.c, gok-predictor.h,
	gok-scanner.c, gok-scanner.h, gok-settings-dialog.c,
	gok-settings-dialog.h, gok-sound.c, gok-sound.h, gok-spy-priv.h,
	gok-spy.c, gok-spy.h, gok-windowlister.c, gok-windowlister.h,
	gok-word-complete.c, gok-word-complete.h, gok.h, gtkjoyswitch.h,
	main.c, main.h, switchapi.c, switchapi.h, test-gok-action.c,
	test-gok-bounds.c, test-gok-feedback.c, test-gok-sound.c,
	word-complete.c, word-complete.h: Added Sun to the copyright
	notice.

2002-10-07 Simon Bates <simon.bates@utoronto.ca>

	* gok/gok-settings-dialog.c: The settings dialog "Help" button now
	starts the help browser at the section within the help file that
	deals with the settings tab that the user is currently on.  For
	example if the user is on the "Actions" tab and they press the
	"Help" button the help browser is opened at the section on actions
	in the GOK user manual.

	* help/gok/C/gok.xml: Made the ids for the sect2s within the
	Settings sect1 consistent.  They now all begin with "gok-settings".

2002-10-07 Chris Ridpath <chris.ridpath@utoronto.ca>

	* gok/: callbacks.h, interface.c, support.c, support.h: UI and
	callbacks created with Glade 2

	* gok.glade2: Resources in Glade 2 format.

2002-10-07 Bruce Etheridge <bruce.etheridge@utoronto.ca>

	* help/gok/C/gok.xml: The first version of the GOK user manual.

2002-10-01 Chris Ridpath <chris.ridpath@utoronto.ca>

	* gok/gok-spy.c: Unreferenced accessible objects when they were no
	longer needed.

2002-09-27 Simon Bates <simon.bates@utoronto.ca>

	* automatic-scanning.xam, direct-selection.xam,
	inverse-scanning.xam: Made the descriptions more consistent with
	each other and simplified the Operation labels

	* dwell-selection.xam: Simplified the Operation labels and fixed
	the Select operation so that it defaults to dwell

2002-09-27 Chris Ridpath <chris.ridpath@utoronto.ca>

	* gok/: gok-keyboard.c, main.c, main.h: Uses specified geometry to
	position GOK keyboard. Keyboard center is not saved if geometry is
	specified.

	* gok/: gok-key.c, gok-key.h: Fixed bug with key resizing where
	HTML special characters (<>&") occured in a key label.

2002-09-26 Simon Bates <simon.bates@utoronto.ca>

	* .cvsignore, gok/.cvsignore, omf-install/.cvsignore,
	help/.cvsignore, help/gok/.cvsignore, help/gok/C/.cvsignore:
	A bit quieter

	* gok/main.c: Added a command line option --remembergeometry. 
	Added GNOME_PARAM_APP_DATADIR,DATADIR to gnome_program_init.

	* gok/gok-settings-dialog.c: The GOK User Guide is now displayed
	when the Help button is pressed on the settings dialog box.  Added
	calls to gnome_help_display.

	* gok/Makefile.am: Added -DDATADIR to INCLUDES for the purpose of
	passing to gnome_program_init

	* configure.in: Added a test for ScrollKeeper and a number of
	entries to AC_OUTPUT for the purpose of processing and installing
	the GOK User Guide

	* Makefile.am: Added help and omf-install for installing the GOK
	User Guide

	* omf-install/Makefile.am: This Makefile.am is used during the
	installation of the GOK documentation

	* help/: Makefile.am, xmldocs.make, gok/C/Makefile.am,
	gok/C/gok-C.omf, gok/C/gok.xml, gok/Makefile.am:
	The GOK User Guide

2002-09-25 Chris Ridpath <chris.ridpath@utoronto.ca>

	* gok/: gok-page-accessmethod.c, gok-page-actions.c,
	gok-page-feedbacks.c, gok-settings-dialog.c, gok-settings-dialog.h:
	Names in the combo boxes are now sorted in alphabetic order.

	* gok/: gok-scanner.c, gok-scanner.h: Added handlers for mouse
	buttons 4 & 5.

	* gok/: gok-main.c, gok-keyboard.c: Dynamic keys are now activated
	when changing to a window where they are required. Bug that caused
	crash with scanning and dynamic keys now fixed.


2002-09-24 Simon Bates <simon.bates@utoronto.ca>

	* gok/main.c: The upper left corner of the rectangular area of the
	screen that gok can use is now calculated from the --geometry
	argument to gok.  Currently gok requires that the x, y, width and
	height all be specified (or no geometry at all).  A dialog box is
	shown to the user if --geometry is specified without all 4
	arguments.

	* gok/Makefile.am: Added gok-bounds.c, gok-bounds.h and
	test-gok-bounds.c Removed test-gok-feedback.c

	* gok/: gok-bounds.c, gok-bounds.h, test-gok-bounds.c: gok-bounds.c
	contains a function that calculates the upper left corner of an X11
	geometry specification given the output from XParseGeometry and the
	screen width and height.

2002-09-18 Simon Bates <simon.bates@utoronto.ca>

	* automatic-scanning.xam, direct-selection.xam,
	dwell-selection.xam, inverse-scanning.xam:
	s/flashkey/key_flashing/g to make the default feedback for
	selection in these access methods consistent with the name of the
	default key-flashing feedback in gok-with-references.schemas.m4

2002-09-18 Simon Bates <simon.bates@utoronto.ca>

	* gok/gok-scanner.c: Numeric values are now correctly read from
	access method rates.

2002-09-17 Simon Bates <simon.bates@utoronto.ca>

	* qwerty.kbd: gok will no longer do modifier latching or locking
	itself and that functionality will instead be provided by AccessX
	Sticky Keys.  This means that in order to get modifier latching or
	locking one must turn on AccessX Sticky Keys.  The QWERTY keyboard
	file has been changed to be AccessX friendly.  Details:  All of the
	"modifier" keys have been changed to "normal" keys.  The keycode
	press and release pair that was sent when a key was pressed has
	been changed to a single keysym.  All wrappers have been removed.
	The labels for keys that output different characters when shift is
	on have been changed so that they show the shifted character also.
	For example "8" was changed to "8 *".  Please note that gok no
	longer shows any visual feedback when modifiers are latched or
	locked.  We hope to add this in the future.

2002-09-16 Simon Bates <simon.bates@utoronto.ca>

	* launcher.kbd: Removed setting of GTK_MODULES

2002-09-16 Simon Bates <simon.bates@utoronto.ca>

	* gok/main.c: Gnome is now initialized using gnome_program_int
	rather than the older gnome_init.  Command line arguments are now
	parsed using gnome_program_init and popt.  The following command
	line arguments are now checked for: -e or --editor, --geometry, -l
	or --login, -s or --settings.  The X11 geometry specification is
	parsed but not yet acted upon, the positions of the gok windows are
	not yet affected.

	* gok/gok.h: Defined N_(String)

2002-09-10 Simon Bates <simon.bates@utoronto.ca>

	* qwerty.kbd: Added pre and post wrappers to Alt keys.	Made the
	right Ctrl key send a pair of keycodes rather than a keysym to make
	it more consistent with Shift and the left Ctrl

	* gok/gok-output.c: Added some gok_log messages to
	gok_output_send_to_system

2002-09-09 Simon Bates <simon.bates@utoronto.ca>

	* gok/gok-log.h: Changed "ifdef" to "if defined" to make the
	code clearer

2002-09-09 Simon Bates <simon.bates@utoronto.ca>

	* gok-1.0.pc.in: Updated dependencies

2002-08-29 Chris Ridpath <chris.ridpath@utoronto.ca>

	* automatic-scanning.xam, inverse-scanning.xam: Intrem checkin.
	Both scanning methods working OK but still need some tweaks on
	wrapping.

	* gok/: gok-scanner.c, gok-scanner.h: Added functionality so that
	multiple rates can be specified for a setting.	This was needed for
	the timer so that the standard rate could be added to the initial
	rate.

2002-08-26 Chris Ridpath <chris.ridpath@utoronto.ca>

	* gok/: gok-chunker.c, gok-chunker.h, gok-scanner.c, gok-scanner.h:
	Fixed bug - selected key remained highlighted after it was selected
	in scanning.  Added initialization section to access method state.

	* inverse-scanning.xam: Modification for row/column wrapping
	started but not finished yet.

2002-08-26  Bill Haneman <bill.haneman@sun.com>

	* gok/callbacks.c:
	(on_window1_realize):
	Added WM_TAKE_FOCUS to list of WM protocols gok uses, to 
	ask WM to use TAKE_FOCUS protocol instead of explicitly
	focussing gok; also add an event filter to the window as
	described below.
	(gok_discard_take_focus_filter):
	New method, a GdkFilterFunc which discards WM_TAKE_FOCUS
	messages so that Gtk+ doesn't give GOK input focus.

2002-08-22  David Bolter <david.bolter@utoronto.ca>

	* Makefile.am: added inverse-scanning.xam to install list

	* gok/gok-keyslotter.c: fixed bug when number of predictions don't
	fit on keyboard.

2002-08-21 Chris Ridpath <chris.ridpath@utoronto.ca>

	* gok/: gok-action.h, gok-chunker.c, gok-chunker.h, gok-data.c,
	gok-scanner.c, gok-scanner.h: All calls to chunker and scanner now
	use rates instead of hard coded values.

	* inverse-scanning.xam: Keeps scanning if switch held down.  User
	interface modified.  Scanning wraps.  User can select scanning
	direction.

2002-08-21  David Bolter <david.bolter@utoronto.ca>

	* gok/gok-windowlister.c: changed the default implementation for
	handling the activation of windows.  now using an actual pointer to
	the window in libwnck, as opposed to comparing strings.  moved
	string comparison implementation to non-default using
	preprocessors..

	* gok/: gok-key.h, gok-key.c: added a pGeneral field to the key
	stuct, which is a void pointer for general use.  currently using
	this for windows in the windowlister keyboard keys.

2002-08-20  David Bolter <david.bolter@utoronto.ca>

	* gok/gok-key.c: added general dynamic style support

	* gok/: gok-spy.c, gok-spy.h: commented out unused code (temporary
	until at-spi registered apps are more prevalent, or libwnck is no
	longer supported)

	* gok/gok-composer.c: fixed style assignments

	* gok/gok-key.h: added general dynamic keystyle

	* gok/gok-keyboard.c: added branch windows case (for activation of
	windows)

	* gok/gok-windowlister.c: minor edits.

	* main.kbd: rearranged keys, and added an "Activate" key for making
	windows active.

	* gok.rc: removed a duplicate style, modified others, and added a
	GeneralDynamic style.

2002-08-19 Simon Bates <simon.bates@utoronto.ca>

	* main.kbd: Added a branch to the launcher keyboard

	* gok/: gok-output.c, gok-output.h: Added a new key output type
	"exec" that executes a command

	* Makefile.am, launcher.kbd: Added launcher.kbd

2002-08-19  David Bolter <david.bolter@utoronto.ca>, Simon Bates <simon.bates@utoronto.ca>

	* configure.in: added libwnck-1.0 library requirement, which is
	used for creating the window list, and window activation.

	* gok/: Makefile.am, gok-key.c, gok-key.h, gok-keyboard.c,
	gok-keyboard.h, gok-windowlister.c, gok-windowlister.h: added
	window list keyboard, allowing activation of windows.

	* manage.kbd: changed a label

2002-08-19  David Bolter <david.bolter@utoronto.ca>

	* gok/gok-composer.c: minor bug fix

2002-08-16  David Bolter <david.bolter@utoronto.ca>

	* gok/command-vertex-data.c: fixed compiler warnings

	* gok/switchapi.c: fixed compiler warnings for non linux builds.

	* gok/main.c: added return statement to segv handler

2002-08-15 15:14  David Bolter <david.bolter@utoronto.ca>

	* gok/gok-spy.c: added defines for magic numbers that control the
	breadth and depth of gui tree searches.

2002-08-14 Simon Bates <simon.bates@utoronto.ca>

	* gok/gok-sound.c: Added a test to catch errors that might occur
	when loading a soundfile.

2002-08-14  David Bolter <david.bolter@utoronto.ca>

	* gok/: command-graph.c, command-predictor.c, command-predictor.h,
	global.c, gok-predictor.c: minor edits (fixed compiler warnings)

2002-08-13 Simon Bates <simon.bates@utoronto.ca>

	* gok/: Makefile.am, gok-file-util.c, gok-file-util.h: Removed
	gok-file-util.c and gok-file-util.h as they are no longer needed. 
	g_build_filename should be used instead of gok_file_dir_concat.

	* gok/: gok-scanner.c, main.c, word-complete.c: Now using
	g_build_filename instead of gok_file_dir_concat

	* gok/gok-gconf.c: Added missing #include <string.h>

	* gok/word-complete.h: TRUE and FALSE are now only defined if they
	have not already been.

2002-08-13 Chris Ridpath <chris.ridpath@utoronto.ca>

	* gok/: gok-page-feedbacks.c, callbacks.c, gok-chunker.c,
	gok-chunker.h, gok-data.h, gok-keyboard.c, gok-keyboard.h,
	gok-modifier.c, gok-output.c, gok-page-accessmethod.c,
	gok-page-accessmethod.h, gok-page-actions.c, gok-page-feedbacks.h,
	gok-page-keysizespace.c, gok-page-keysizespace.h,
	gok-page-wordcomplete.c, gok-scanner.c, gok-scanner.h,
	gok-settings-dialog.c, gok-settings-dialog.h: Fixed compiler
	warnings and added docs for functions.

	* gok/callbacks.c: Fixed a bug with a missing parameter.

2002-08-12 Simon Bates <simon.bates@utoronto.ca>

	* gok/gok-feedback.c: Added missing #include of "gok-sound.h".
	Removed unused variables. From gok_feedback_open: permanent.  From
	gok_feedback_close: err.

	* gok/gok-action.c: Removed unused variables. From gok_action_open:
	err.  From gok_action_close: err.

	* gok/gok-data.c: Removed unused variables.  From
	gok_data_read_settings: bGlobalSetting and a_gerror.  From
	gok_data_close: pStringYesNo, stringYes, stringNo and pFile.

	* gok/test-gok-sound.c: Added "return 0;" to the end of the main
	function to stop it falling off the end.

	* gok/gok-log.c: Fixed the definition of indent - it was missing a
	type. Now defined as "int".

2002-08-12  David Bolter <david.bolter@utoronto.ca>

	* gok/: arraylist.c, gok-keyboard.h, gok-keyslotter.h,
	gok-predictor.c, gok-spy.c, main.c: cleaning up strict compiler
	warnings.

	* gok/Makefile.am: added keyslotter.c to builds

	* gok/gok-data.h: changed naming from commandcomplete to
	commandprediction to match related code.

	* gok/gok-word-complete.c: moved some generic key slot code into
	its own module: gok-keyslotter.

	* gok/gok-spy.h: added three function prototypes for debugging ref
	counts.

	* gok/gok-keyslotter.c: first add

2002-08-12 Simon Bates <simon.bates@utoronto.ca>

	* INSTALL: Removed the configure option "--enable-esd" esound (esd)
	is now required and is no longer optional

	* gok/gok-feedback.c: Now calls gok_sound_play to provide audio
	feedback

	* gok/: gok-sound.c, gok-sound.h, test-gok-sound.c: Rewrote the gok
	sound package. The package now consists of three functions:
	gok_sound_initialize (), gok_sound_shutdown () and gok_sound_play
	(gchar *soundfile). gok_sound_play loads the specified soundfile
	and plays it the first time it is called with that soundfile. In
	subsequent calls the soundfile is played from memory.

	* gok-with-references.schemas.in, gok-with-references.schemas.m4:
	Added new feedback: none Added new feedbacks: goksound1 and
	goksound2 Removed old sound feedback: sound

	* gok/gok-keyboard.c: Removed the old calls to gok_sound_play

	* Makefile.am: Added goksound1.wav and goksound2.wav to
	pkgdata_DATA so that they are installed at make install

	* goksound1.wav, goksound2.wav: Added to CVS

	* configure.in: Using ESD is no longer optional and "esound" is
	listed as a dependency of gok in PKG_CHECK_MODULES

2002-08-09 Chris Ridpath <chris.ridpath@utoronto.ca>

	* gok/: gok-feedback.c, gok-feedback.h, gok-page-feedbacks.c:
	Removed the flags used to make the feedback unmodifyable and now
	use the 'permanent' flag.

	* gok/interface.c: Fixed bug - mouse button types now can't be
	changed for permanent mouse button actions.

	* gok/: gok-page-actions.c, gok-page-actions.h: Fixed bug - mouse
	button types now can't be changed for permanent mouse button
	actions.

2002-08-09  David Bolter <david.bolter@utoronto.ca>

	* gok/gok-branchback-stack.c, gok/gok-key.c, gok/gok-key.h,
	gok/gok-keyboard.c, gok/gok-keyboard.h, gok/gok-spy.c,
	gok/gok-spy.h, gok/main.c, Makefile.am, manage.kbd: part of
	multifile commit related to implementing a task management
	keyboard, as well as some bug fixes related to keyboard deletion.

	* gok/gok-composer.c: minor edit.

	* main.kbd: undid last commit (last commit was erroneous)

2002-08-08 Chris Ridpath <chris.ridpath@utoronto.ca>

	* gok/: gok-feedback.c, gok-feedback.h, gok-page-feedbacks.c:
	Feedbacks are backed up once read in so the 'revert' works
	properly.  Added 2 flags to GokFeedback - bSoundMustBeOn and
	bFlashMustBeOn. These are needed for our permanent feedbacks that
	should not be turned off by the user.

2002-08-07 Chris Ridpath <chris.ridpath@utoronto.ca>

	* main.kbd: Slight cosmetic change.

	* direct-selection.xam, dwell-selection.xam, row-column.xam:
	Changed the handler 'actions' to 'effects'.

	* gok/: gok-feedback.c, gok-feedback.h, gok-page-accessmethod.c,
	gok-page-accessmethod.h, gok-page-feedbacks.c, gok-scanner.c,
	gok-scanner.h: Changes to feedbacks on the access method page not
	almost working.

2002-08-06  David Bolter <david.bolter@utoronto.ca>

	* gok/: main.c, main.h: added idle handler (to check at-spi event
	queue in gok-spy). added keyboard argument to gok_main_display_scan
	method.  bulletproofing of keyboard deletion (avoiding segv). 
	debugging output added.

	* gok/: gok-spy.c, gok-spy.h: removed mutex, and added an event
	queue for focus events. added reference count debugging log
	messages.

	* gok/gok-editor.c: added argument to gok_keyboard_delete calls.

	* gok/gok-keyboard.h: added methods for improvements/fixes to
	dynamic keyboard code (including handling of submenus).

	* gok/gok-keyboard.c: significant improvements/fixes to dynamic
	keyboard code (including handling of submenus).

	* test.kbd: minor mods

	* gok/gok-composer.c: modified to work with gok_main_display_scan
	extra argument.

	* gok/: gok-branchback-stack.c, gok-branchback-stack.h: bugfix
	(temporary?) so that dynamic keyboards do not get deleted if they
	are in the stack.

2002-07-31  Laszlo Peter  <laca@sun.com>

	* gok/Makefile.am: s/LDFLAGS/LDADD/

2002-07-30 Simon Bates <simon.bates@utoronto.ca>

	* gok/gok-gconf-keys.h: Removed the macros
	GOK_GCONF_DEFAULTS_DIRECTORY and GOK_GCONF_ACTIONS_DIRECTORY as
	they are no longer needed.

	* gok-with-references.schemas.m4: Removed the keys for
	defaults_directory and actions_directory as they are no longer
	needed.

	* gok-actions.xml: Removed gok-actions.xml as it is not longer
	needed. Actions are now stored in GConf.

	* Makefile.am: Removed gok-actions.xml as it is not longer needed.
	Actions are now stored in GConf.

2002-07-29 Simon Bates <simon.bates@utoronto.ca>

	* gok/test-gok-action.c: Added a test that checks the storage and
	retrieval of actions with all the possible values of type. Added a
	test that checks all possible values of state. Added a test that
	checks both values of permanent. Added a test that checks both
	values of key averaging.

	* gok/gok-action.c: Added handling of states ACTION_STATE_ENTER and
	ACTION_STATE_LEAVE to gok_action_open and gok_action_close.

	* gok/gok-gconf-keys.h: Added macros for action states "enter" and
	"leave".

2002-07-29 Simon Bates <simon.bates@utoronto.ca>

	* gok/Makefile.am: Added test-gok-feedback

	* gok/: test-gok-feedback.c, gok-feedback.c: Feedbacks are now
	stored and retrieved from GConf

	* gok/gok-gconf-keys.h: Added macros for feedbacks

	* gok/gok-action.c: Permanent actions are now stored in GConf.

	* gok/gok-gconf.c: The set functions now only set the value for a
	key if it is different from what is in GConf already for the key.

	* gok/gok-page-feedbacks.c: Used g_strdup instead of malloc and
	strcpy to make sure that strings are duplicated correctly
	independent of the size of g_char.

	* gok-with-references.schemas.in, gok-with-references.schemas.m4:
	Rewrote gok-with-references.schemas.m4 to use more macros and
	therefore reduced the length of the file. Added schemas for the
	default feedbacks.

	* Makefile.am: Fixed the rules for gok.schemas. make distcheck was
	failing because the rules did not work properly when srcdir !=
	builddir

2002-07-27  David Bolter <david.bolter@utoronto.ca>

	* gok/gok-keyboard.c: accessible pointers stored on keyboards
	should be set by calling gok_keyboard_set_accessible, or ref counts
	can get unbalanced.  one such case was caught and fixed.

2002-07-26  Laszlo Peter <laca@sun.com>

	* configure.in: added test for X libs

	* gok/Makefile.am: link to the X libs.

2002-07-25  David Bolter <david.bolter@utoronto.ca>

	* gok/Makefile.am: added gok-composer.c and gok-composer.h

	* gok/: gok-composer.c, gok-composer.h: first add

	* gok/gok-spy.c: minor edit involving comparing AccessibleText
	pointers.

	* gok/gok-keyboard.c: moved text manipulation keyboard code into
	new gok-composer.c file, added ref counting for the keyboard
	pAccessible field.

	* gok/: gok-key.c, gok-key.h: added gok_key_add_output function.

2002-07-25  David Bolter <david.bolter@utoronto.ca>

	* gok/: main.h, main.c: Added a SEGV signal handler to perform some
	cleanup in order to keep the system from becoming unusable.  This
	involved moving more cleanup code into the common gok_main_close
	function, as well as slightly reordering the cleanup sequence.

2002-07-24  David Bolter <david.bolter@utoronto.ca>

	* gok/gok-spy.c: massive edits, improvements include: limiting
	at-spi leaks, finding accessible objects, stability.

	* gok/gok-spy.h: uncommented mutex definition

	* gok/main.c: moved gok-spy-close call to before SPI_exit().

	* gok/gok-keyboard.c: improved interaction with at-spi (gok-spy),
	fixed accessible text manipulation (was broken).


2002-07-23 Simon Bates <simon.bates@utoronto.ca>

	* gok/gok-log.c: Fixed a bug in put_indent that was causing
	segmentation faults

2002-07-22 Chris Ridpath <chris.ridpath@utoronto.ca>

	* gok/: gok-action.c, gok-action.h, gok-feedback.c, gok-feedback.h,
	gok-page-actions.c, gok-page-feedbacks.c: The actions and feedbacks
	pages are now similar.

2002-07-19 Simon Bates <simon.bates@utoronto.ca>

	* INSTALL: Changed file to refer to "configure" rather than
	"autogen.sh". Added m4 to the requirements

	* gok/Makefile.am: Added missing headers

	* Makefile.am: Changed gok-with-references.schemas.in to
	gok-with-references.schemas.m4 in EXTRA_DIST

	* Makefile.am: Added $(pkgdata_DATA) and
	gok-with-references.schemas.in to EXTRA_DIST

	* INSTALL, configure.in: gtk-doc is now enabled by default

	* docs/reference/: gok-docs.sgml, gok-sections.txt,
	tmpl/arraylist.sgml, tmpl/callbacks.sgml, tmpl/command-common.sgml,
	tmpl/command-edge-data.sgml, tmpl/command-edge.sgml,
	tmpl/command-graph.sgml, tmpl/command-predictor.sgml,
	tmpl/command-vertex-data.sgml, tmpl/command-vertex.sgml,
	tmpl/global.sgml, tmpl/gok-action.sgml,
	tmpl/gok-branchback-stack.sgml, tmpl/gok-button.sgml,
	tmpl/gok-chunker.sgml, tmpl/gok-control.sgml, tmpl/gok-data.sgml,
	tmpl/gok-editor.sgml, tmpl/gok-feedback.sgml,
	tmpl/gok-file-util.sgml, tmpl/gok-gconf-keys.sgml,
	tmpl/gok-gconf.sgml, tmpl/gok-key.sgml, tmpl/gok-keyboard.sgml,
	tmpl/gok-keyslotter.sgml, tmpl/gok-log-priv.sgml,
	tmpl/gok-log-reader.sgml, tmpl/gok-log.sgml,
	tmpl/gok-modifier.sgml, tmpl/gok-output.sgml,
	tmpl/gok-page-accessmethod.sgml, tmpl/gok-page-actions.sgml,
	tmpl/gok-page-feedbacks.sgml, tmpl/gok-page-keysizespace.sgml,
	tmpl/gok-page-wordcomplete.sgml, tmpl/gok-predictor.sgml,
	tmpl/gok-scanner.sgml, tmpl/gok-settings-dialog.sgml,
	tmpl/gok-sound.sgml, tmpl/gok-spy-priv.sgml, tmpl/gok-spy.sgml,
	tmpl/gok-unused.sgml, tmpl/gok-word-complete.sgml, tmpl/gok.sgml,
	tmpl/gtkjoyswitch.sgml, tmpl/interface.sgml, tmpl/main.sgml,
	tmpl/support.sgml, tmpl/switchapi.sgml, tmpl/word-complete.sgml:
	Added to CVS

	* docs/reference/gok.types: Added to CVS, needed for 'make dist'

	* gok/command-predictor.h: Replaced "typedef enum
	prediction_algorithm_enums" with "typedef enum" to make gtk-doc
	happy

2002-07-19 Chris Ridpath <chris.ridpath@utoronto.ca>

	* gok.glade: Changes to feedbacks page.

	* gok/: callbacks.c, gok-feedback.c, gok-feedback.h,
	gok-page-feedbacks.c, gok-page-feedbacks.h, interface.c: Feedbacks
	now working except for sounds.

2002-07-19 Chris Ridpath <chris.ridpath@utoronto.ca>

	* gok/: gok-feedback.c, gok-feedback.h, gok-page-feedbacks.c,
	gok-page-feedbacks.h: Initial version of the feedbacks.

	* gok/main.c: Added an open and close for the feedbacks.

	* gok/: callbacks.h, gok-action.c, gok-page-actions.c, interface.c,
	callbacks.c, gok-action.h, gok-settings-dialog.c: Initial
	modifications for the 'feedbacks' settings page.

	* gok/Makefile.am: Added files for the 'feedbacks' settings page.

	* gok.glade: Modified the 'feedback' page.

2002-07-18 Simon Bates <simon.bates@utoronto.ca>

	* gok.schemas.in, gok.schemas.m4: gok.schemas.m4 and gok.schemas.in
	are no longer used. They have been replaced by
	gok-with-references.schemas.m4 and gok-with-references.schemas.in

	* Makefile.am, gok-with-references.schemas.in,
	gok-with-references.schemas.m4, po/POTFILES.in: Changed the way
	that gok.schemas is generated. It is now generated as follows:
	gok-with-references.schemas.m4 -> gok-with-references.schemas.in
	via m4 macro expansion. gok-with-references.schemas.in ->
	gok-with-references.schemas via @INTLTOOL_SCHEMAS_RULE@ to merge in
	translations. gok-with-references.schemas -> gok.schemas via sed to
	replace references to $pkgdatadir to the actual value of
	$pkgdatadir determined at configure time.

2002-07-16 David Bolter <david.bolter@utoronto.ca>

	* gok/main.c: fixing gok window occlusion: added gdk_window_raise
	call to raise the gok window when there is a window focus or mouse
	button up event. need to find a solution for dwell users (poll?)
	since we can't count on a focus or mouse button event.

2002-07-12 Simon Bates <simon.bates@utoronto.ca>

	* gok/main.c: Now only loading the gok rc file if the setting
	use_gtkplus_theme is false.

	* gok/: gok-data.c, gok-data.h: Added a new variable,
	m_bUseGtkPlusTheme, for storing whether we should use the Gtk+
	theme or not. Initialized that variable in gok_data_initialize. 
	Read it from GConf in gok_data_read_settings. Added a getter
	gok_data_use_gtkplus_theme and a setter
	gok_data_set_use_gtkplus_theme.

	* gok/gok-gconf-keys.h: Added a key for storing whether we should
	use the Gtk+ theme or not

	* gok/gok-data.c: Removed the lines that read and wrote the
	settings to an XML file that had been previously commented out.

2002-07-12 Simon Bates <simon.bates@utoronto.ca>

	* gok/: gok-action.c, test-gok-action.c: gok_action_close now only
	saves non-permanent actions. This is to avoid every user having
	their own copies of the permanent actions in their local GConf
	settings.

2002-07-11 David Bolter <david.bolter@utoronto.ca>

	* gok/main.c: connected mouse button listener in main.c to switch
	handlers in gok-scanner

2002-07-11 Simon Bates <simon.bates@utoronto.ca>

	* gok/: gok-action.c, test-gok-action.c: gok_action_close now
	unsets any actions that are in GConf but which are not in memory.
	This is so that actions that are deleted with
	gok_action_delete_action are removed from GConf.

2002-07-11 David Bolter <david.bolter@utoronto.ca>

	* gok/: gok-spy.h, main.h, gok-spy-priv.h, gok-spy.c, main.c: added
	general mouse button event handling using at-spi.

	* gok/gok-editor.c: added call to mark file as modified.

	* gok/: gok-button.c, gok-key.c: removed some verbose debug output

2002-07-11 Simon Bates <simon.bates@utoronto.ca>

	* gok/: gok-action.c, gok-gconf-keys.h: Added a work around to
	gok_action_close to deal with a bug in GConf.  I have submitted a
	bug on GConf to Bugzilla:
	http://bugzilla.gnome.org/show_bug.cgi?id=87929 There is a problem
	with GConf and schemas and directories that contain only
	subdirectories and no keys. When actions were added they were not
	being stored in GConf. Actions are added to a directory
	/apps/gok/actions and there is a subdirectory for each action. So
	/apps/gok/actions contains only subdirectories and no keys. The
	work around is to add a key /apps/gok/actions/workaround.

2002-07-10 Chris Ridpath <chris.ridpath@utoronto.ca>

	* gok/: gok-button.c, gok-button.h: Highlight state now set.
	* gok/main.c: Removed the button press event handler setting from
	the main window because the main window will never receive that
	event.
	* gok/gok-chunker.c: Key is now highlighted according to our state.
	* gok/gok-scanner.c: Button release now reset when keyboard
	changes.
	* gok/gok-key.h: Keys now highlight according to our state.
	* gok/: gok-key.c, gok-keyboard.c: Keys now highlight according to
	our state.  All disabled keys (branch back, branch GUI etc.) now
	use the same key style.

2002-07-05 Chris Ridpath <chris.ridpath@utoronto.ca>, DB, CY

	* command-edge.c: Fixed bug with seg fault on file load.

2002-07-03 Chris Ridpath <chris.ridpath@utoronto.ca>

	* gok/: gok-page-actions.c, gok-scanner.c: Now uses new action
	names.

	* automatic-scanning.xam, code-input-switch.xam,
	direct-selection.xam, dwell-selection.xam, row-column.xam: Updated
	access methods to use new action names.

	* Makefile.am: Removed several access methods for now.

2002-07-02 Simon Bates <simon.bates@utoronto.ca>

	* gok.schemas.in: Replaced gok.schemas.in with gok.schemas.m4

	* Makefile.am, gok.schemas.m4: Replaced gok.schemas.in with
	gok.schemas.m4 We are now using m4 to process the gok.schemas
	rather than sed. Added the default actions to gok.schemas.m4

2002-07-02 Simon Bates <simon.bates@utoronto.ca>

	* gok/: Makefile.am, gok-action.c, gok-action.h, test-gok-action.c:
	Converted gok-action over to GConf. Added a new attribute to
	GokAction, pDisplayName, for storing the action name that is
	displayed to the user.  Added two functions for creating and
	destroying GokActions, gok_action_new and gok_action_free.

	* gok/gok-gconf-keys.h: Added macros for action settings.

	* gok/gok-gconf.c: Fixed up the comment for gok_gconf_get_string

	* gok/main.h: Added a prototype for gok_main_display_gconf_error().

2002-06-28 Simon Bates <simon.bates@utoronto.ca>

	* gok/: gok-gconf.c, gok-gconf.h: Added to CVS.

	* gok/Makefile.am: Added gok-gconf.c and gok-gconf.h

	* gok/: gok-data.c, main.c: Improved the way that GOK behaves when
	it cannot retreive the keys that it expects to get from GConf.

	* README: Added a "Troubleshooting" section that contains solutions
	for some observed problems.

2002-06-27 Chris Ridpath <chris.ridpath@utoronto.ca>

	* code-input-switch.xam: First version of binary coding access
	method.

	* gok/: callbacks.c, gok-chunker.c, gok-chunker.h, gok-keyboard.c,
	gok-keyboard.h, gok-scanner.c, gok-scanner.h: First version of
	binary coding.

2002-06-25 David Bolter <david.bolter@utoronto.ca>

	* gok/: gok-editor.c, gok-editor.h: added gok_editor_touch_file
	method, and fixed a reintroduced bug with new key placement.

	* gok/main.c: removed some commented out code.

2002-06-23 Chris Ridpath <chris.ridpath@utoronto.ca>

	* gok/: callbacks.c, gok-editor.c, gok-editor.h: Editor now saves
	files.	Titlebar is updated with filename and modification status. 
	Fixed bug so new keys are added properly to new keyboard.

2002-06-21 David Bolter <david.bolter@utoronto.ca>

	* gok/gok-editor.c: improved keyboard updating, and new key
	placement.

2002-06-21 David Bolter <david.bolter@utoronto.ca>

	* gok/gok-button.c: added some gok log messages, changing code
	slightly in the process.

	* gok/: gok-editor.c, gok-editor.h: added functions: moving keys,
	adding keys, deleting keys, and new keyboard (almost).

	* gok/: callbacks.c, callbacks.h, interface.c: added signals in
	editor

	* gok/: gok-key.h, gok-key.c: added gok_key_set_cells, and
	gok_key_duplicate

	* gok.glade: added some signals for key cell spin controls, new,
	delete key buttons, and new menu item.

2002-06-21 Chris Ridpath <chris.ridpath@utoronto.ca>

	* gok/main.c: Ensures the keyboard is a minimum size.

	* gok/gok-predictor.c: Fixed a couple of compiler warnings (casts
	needed).

	* gok.glade: Added keyboard editor dialog to the project.2002-06-18 16:28  Chris Ridpath <chris.ridpath@utoronto.ca>

	* gok/: gok-key.c, gok-keyboard.c, gok-keyboard.h: Small changes so
	the keys and keyboards could be reused in the editor.

	* gok/: gok-button.c, gok-button.h: Removed the events for
	key-enter and key-leave from the button initialization. These
	events are now added to the button when the keyboard creates the
	buttons. If the keyboard is used in the editor then these signals
	are not created.

	* gok/: main.c, main.h: Keyboard editor added to main. The editor
	is started by adding "editor" to the command line. When the editor
	is running the normal GOK does not run.

	* gok/: callbacks.c, callbacks.h, interface.c, interface.h: UI for
	the keyboard editor.

	* gok/Makefile.am: Added keyboard editor files to the project.

	* gok/: gok-editor.c, gok-editor.h: Initial version of the GOK
	keyboard editor.

2002-06-14 Chris Ridpath <chris.ridpath@utoronto.ca>

	* gok/: callbacks.c, callbacks.h, gok-action.c, gok-action.h,
	gok-data.c, gok-data.h, gok-page-actions.c, gok-page-actions.h,
	gok-scanner.c, gok-scanner.h, gok-settings-dialog.c, interface.c:
	Settings page for adding and modifying actions is now working.

2002-06-12 David Bolter <david.bolter@utoronto.ca>

	* qwerty.kbd: keysym for equals changed to "equal" fixing broken =
	key.

2002-06-07 David Bolter <david.bolter@utoronto.ca>

	* gok/: Makefile.am, gok-data.c, gok-data.h, gok-key.c, gok-key.h,
	gok-keyboard.c, gok-keyboard.h, gok-word-complete.c, main.c,
	main.h, word-complete.c: involves first integration of command
	prediction engine.

	* gok/gok-keyslotter.h: first add - involved with integration of
	prediction engine into gok

	* test.kbd: added commandprediction="yes" attribute for testing
	command prediction.

2002-06-07 Cynick Young <cynick.young@utoronto.ca> ,
           David Bolter <david.bolter@utoronto.ca>

	* gok/: gok-predictor.c, gok-predictor.h: first add - provides
	interface between gok and prediction engine.

2002-06-07 Cynick Young <cynick.young@utoronto.ca> ,
           Laurel Williams <laurel.williams@utoronto.ca>

	* gok/: arraylist.c, arraylist.h, command-common.h,
	command-edge-data-test.c, command-edge-data.c, command-edge-data.h,
	command-edge.c, command-edge.h, command-graph.c, command-graph.h,
	command-predictor.c, command-predictor.h, command-vertex-data.c,
	command-vertex-data.h, command-vertex.c, command-vertex.h: 
	first add, part of a fairly generic and powerful prediction engine.
	
	* gok/: gok-log-reader.c, gok-log-reader.h: first add - part of
	prediction engine.
	
	* gok/: global.c, global.h, 
	first add - part of prediction engine code (needs to be
	absorbed into other files)
	
2002-06-06 Chris Ridpath <chris.ridpath@utoronto.ca>

	* automatic-scanning.xam, direct-selection.xam: Added several
	controls to the rates.

	* gok/gok-page-accessmethod.c: Now checks that control is created
	before reading it.

	* gok/main.c: Added a command line flag "settings" that, if
	present, will display the settings dialog when the gok runs.

	* gok/: gok-data.c, gok-data.h, gok-page-accessmethod.c,
	gok-page-accessmethod.h, interface.c: Dynamic UI now updates all
	user controls.

	* Makefile.am, automatic-scanning.xam, code-input-switch.xam,
	direct-selection.xam: Access methods have improved UI.


2002-06-03 David Bolter <david.bolter@utoronto.ca> (and C.R.)

	* gok/gok-chunker.c: fixed branching bug (related to chunk hilight
	state and chunking)

2002-06-03 Chris Ridpath <chris.ridpath@utoronto.ca>

	* Makefile.am, direct-selection.xam, automatic-scanning.xam,
	row-column.xam: Direct selection and Row-Column selection methods
	now have a more correct UI description.

	* gok/: gok-control.c, gok-control.h, gok-data.c, gok-data.h,
	gok-page-accessmethod.c, gok-page-accessmethod.h, gok-scanner.c,
	gok-settings-dialog.c, main.c: Intrem checkin. Access method UI
	code that ties the UI to the selection method.


2002-05-29  David Bolter <david.bolter@utoronto.ca>

	* gok/switchapi.h: removed unecessary includes

2002-05-17  Chris Ridpath <chris.ridpath@utoronto.ca>

	* gok/: gok-chunker.c, gok-control.c, gok-control.h,
	gok-page-accessmethod.c, gok-scanner.c, gok-scanner.h, interface.c:
	Dynamic UI intrem checkin.

	* Makefile.am, automatic-scanning.xam, directed.xam,
	inverse-scanning.xam: UI added to access methods.

2002-05-16  Chris Ridpath <chris.ridpath@utoronto.ca>

	* Makefile.am, direct-selection.xam, directed.xam, gok-actions.xml,
	gok-settings.xml, inverse-scanning.xam, dwell-selection.xam:
	Dynamic UI XML code added to access methods.

	* gok/main.c: Initialization order was changed so the actions file
	is read in earlier.

	* gok/: gok-action.h, gok-control.c, gok-data.c,
	gok-page-accessmethod.c, gok-scanner.c, gok-scanner.h, interface.c:
	Dynamic UI now working.

2002-05-15 Simon Bates <simon.bates@utoronto.ca>
	
	* README, INSTALL: Updated.

2002-05-15 Simon Bates <simon.bates@utoronto.ca>

	* Makefile.am, gok.schemas.in, gok/Makefile.am,
	gok/gok-action.c, gok/gok-gconf-keys.h: Changed the way
	that gok-actions.xml is loaded and saved.
	Changed gok_action_open:
	  - Try to read gok-actions.xml from directory pointed to by
	    GConf key GOK_GCONF_ACTIONS_DIRECTORY
	  - If that fails then get from directory pointed
	    to by GConf key GOK_GCONF_DEFAULTS_DIRECTORY
	Changed gok_action_close:
	  - Try to save gok-actions.xml to directory pointed to by GConf key
	    GOK_GCONF_ACTIONS_DIRECTORY
	  - If that fails then create ~/.gok, save there and
	    change GOK_GCONF_ACTIONS_DIRECTORY to point at ~/.gok

2002-05-14 Pablo Saratxaga  <pablo@mandrakesoft.com>

	* configure.in: Added Vietnamese (vi) and Catalan (ca) to ALL_LINGUAS

2002-05-13 Simon Bates <simon.bates@utoronto.ca>

	* gok.schemas.in, gok/gok-data.c: The name of the current access
	method is now stored and retrieved from GConf.

2002-05-13 Simon Bates <simon.bates@utoronto.ca>

	* Keyboard files, access method files, gok.rc and
	the word completion dictionary are now loaded from
	directory names stored in GConf keys.

2002-05-10 David Bolter <david.bolter@utoronto.ca>

	* gok/gok-keyboard.c: -bug fix- fixed the highlight state not been reset bug
	when branching back to keyboards 

2002-05-10 Simon Bates <simon.bates@utoronto.ca>

	* gok/: gok-data.c, gok-gconf-keys.h, main.c: Added some GConf
	support to gok. The following settings are now read from GConf in
	gok_data_read_settings(): key spacing, key width, key height,
	keyboard x, keyboard y, word complete, number predictions.  Those
	settings are also written to GConf in these functions:
	gok_data_set_key_spacing, gok_data_set_key_width,
	gok_data_set_key_height, gok_data_set_keyboard_x,
	gok_data_set_keyboard_y, gok_data_set_wordcomplete,
	gok_data_set_num_predictions.

	* Makefile.am, configure.in, gok.schemas: Added schemas for gok
	GConf keys, gok.schemas. This is now installed into the default
	system location at make install.

2002-05-09 Chris Ridpath <chris.ridpath@utoronto.ca>

	* alphabet.kbd, test.kbd: Fixed a few minor bugs with the modifier
	keys.

	* gok/: Makefile.am, callbacks.c, callbacks.h, gok-modifier.c,
	gok-output.c, gok-page-accessmethod.c, gok-page-accessmethod.h,
	gok-page-actions.c, gok-page-actions.h, gok-page-keysizespace.c,
	gok-page-keysizespace.h, gok-page-wordcomplete.c,
	gok-page-wordcomplete.h, gok-settings-dialog.c, interface.c,
	main.c: Initial version of the 'actions'.

	* qwerty.kbd: Wrappers are now set for the modifier keys.

	* gok/: gok-key.c, gok-key.h, gok-modifier.c, gok-modifier.h:
	Modifier keys now output their wrapper according to the wrapper set
	on the key. (Wrappers can be different for same modifier type e.g.
	shift_l and shift_r.) Toggle modifiers (like capslock) now have a
	different indicator than normal modifiers.

2002-05-03 Chris Ridpath <chris.ridpath@utoronto.ca>

	* gok/: gok-button.h, gok-key.c, gok-keyboard.c, gok-keyboard.h,
	gok-page-wordcomplete.c, gok-settings-dialog.c,
	gok-word-complete.c, gok-word-complete.h, interface.c: Settings
	dialog for word completion now works when user selects 'try',
	'revert' or 'ok'.

2002-05-02	David Bolter <david.bolter@utoronto.ca>

	* gok/gok-output.c: got the keycodes working.
	* main.kbd, qwerty.kbd: fixed modifier output tags

2002-05-01	Chris Ridpath <chris.ridpath@utoronto.ca>

	* main.kbd: Modified several keys to use the new modifier format.

	* gok/: gok-key.c, gok-key.h, gok-keyboard.c, gok-modifier.c,
	gok-output.c, gok-output.h, gok-word-complete.c: Word completion
	now works with the new GokOutputs.

2002-04-30	Chris Ridpath <chris.ridpath@utoronto.ca>

	* qwerty.kbd: Fixed several labels for the 'shift' modifier.

	* gok/Makefile.am: Added files for modifier keys and key output.

	* gok/: gok-key.c, gok-key.h, gok-keyboard.c, gok-keyboard.h,
	gok-word-complete.c, gok-word-complete.h, main.c: Modifier keys are
	now working.  Indicators for modifiers now working.

	* gok/: gok-modifier.c, gok-modifier.h, gok-output.c, gok-output.h:
	Code that deals with modifier keys and output from keys.

	* qwerty.kbd: Added labels and outputs for modifier keys.

2002-04-29 Simon Bates <simon.bates@utoronto.ca>

	* Makefile.am, configure.in, gok/main.c: Made some I18N fixes and
	gok can now be run in a language specified by the LANG environment
	variable.

2002-04-29 David Bolter <david.bolter@utoronto.ca>

	* gok/: gok-spy.c, gok-spy.h: added an API method gok_spy_has_child
	for optimization of dynamic keyboard branch key validation. 
	numerous minor changes, possible bug fixes (not fully tested).

	* gok/gok-keyboard.c: changed keyboard validation to use new
	optimized gok_spy calls.

2002-04-24 Simon Bates <simon.bates@utoronto.ca>

	* gok/: Makefile.am, gok-keyboard.c, gok-sound.c, gok-sound.h,
	test-gok-sound.c: Improved gok-sound. gok-sound now defines two
	events, GOK_SOUND_MOVE and GOK_SOUND_SELECT. A new function,
	gok_sound_load loads a sound file and associates it with an event.
	gok_sound_play now takes an event name as a parameter and plays
	the sound that was previously loaded for that event.  Please see
	test-gok-sound.c for example usage.

2002-04-24  Christian Rose  <menthos@menthos.com>

	* configure.in: Added "sv" to ALL_LINGUAS.

2002-04-20  Abel Cheung  <maddog@linux.org.hk>

	* .cvsignore, */.cvsignore, */*/.cvsignore: New or added files.

2002-04-17	Simon Bates <simon.bates@utoronto.ca>

	* configure.in, Makefile.am, docs/Makefile.am,
	docs/reference/Makefile.am, INSTALL: Added support for building of
	gtk-doc reference documentation.

2002-04-17	David Bolter <david.bolter@utoronto.ca>

	* gok/: gok-keyboard.c, gok-keyboard.h, gok-spy.c, gok-spy.h,
	main.c: Changes related to fixing dynamic keyboard synching
	problems, removed the gok_spy repository and related methods, added
	a preprocessor-optional mutex in gok_spy, added a field to
	gok_keyboard so that dynamic memory cleanup can happen on keyboard
	deletion.

2002-04-17  Abel Cheung  <maddog@linux.org.hk>

	* configure.in: Added "zh_TW" to ALL_LINGUAS.

2002-04-10	Chris Ridpath <chris.ridpath@utoronto.ca>

	* gok/: gok-chunker.c, gok-keyboard.c, gok-keyboard.h,
	gok-scanner.c, main.c, main.h: Dynamic keyboards now updated each
	time they are displayed.  Once a selection has been made on a
	dynamic keyboard, the user is branched back to the last pre-made
	keyboard.

2002-04-09	David Bolter <david.bolter@utoronto.ca>

	* gok/gok-keyboard.c: gok_keyboard_branch_edittext now calls
	gok_key_add_output for setting static key output.

2002-04-08	David Bolter <david.bolter@utoronto.ca>

	* gok/gok-keyboard.h: menu keyboard fixed (was combining all menu
	items in one big keyboard)

	* gok/gok-keyboard.c: Added cut, copy, and arrow key movement to 
	editable text keyboard.  Menu keyboard fixed (recently introduced
	behaviour was combining all menu items in one big keyboard), 
	improved log message stuff.

	* gok/gok-word-complete.c: quick bugfix (word prediction output was
	broken)

	* gok/gok-spy.c: merged conflicts to do with logging

	* gok/main.c: improved log messages


2002-04-08	Chris Ridpath <chris.ridpath@utoronto.ca>

	* gok/gok-spy.c: Changed the log status of a message.

	* gok/: gok-key.c, gok-key.h, gok-keyboard.c, gok-keyboard.h,
	gok-word-complete.c, main.c, main.h: Each key now has 2 variables
	that describe the 'type' of key and 'style' of key.  Dynamically
	created keyboards are now deleted once you branch 'back' off them.

2002-04-08	Simon Bates <simon.bates@utoronto.ca>

	* gok/: gok-log.c, gok-log.h: Bug fixes and improvements to logging.

2002-04-05	David Bolter <david.bolter@utoronto.ca>

	* gok/gok-spy.c: fixed nasty seg fault (memory overwrite bug) in
	gok_spy_create_list.  added gok_log macro usage.
	
2002-04-05	Simon Bates <simon.bates@utoronto.ca>

	* gok/: gok-log.c, gok-log.h: Rewrote logging to use macros that
	can be removed at compile time.  No longer uses the glib logging
	code.  New macros gok_log_enter () and gok_log_leave (). 
	gok_log_enter () displays the name of the function from which it is
	called and indents the logging output.  gok_log_leave () moves the
	logging output back again by the amount that it was in indented.

	* configure.in: Added tests for ISO C99 and GNU variadic macros. 
	Added a test for __func__.  Removed --enable-debug-messages.  Added
	--enable-logging-normal and --enable-logging-exceptional.

	* INSTALL: Removed --enable-debug-messages.  Added
	--enable-logging-normal and --enable-logging-exceptional.

2002-04-03	Simon Bates <simon.bates@utoronto.ca>

	* gok/: gok-log.c, gok-log.h: Added to CVS.

	* gok/Makefile.am: Added gok-log.c and gok-log.h

	* gok/main.c: Included gok-log.h

	* configure.in: Added configure option --enable-debug-messages that
	enables the display of debug messages

2002-04-03	David Bolter <david.bolter@utoronto.ca>
	* gok/gok-keyboard.c: fixed recently introduced branch back bug for
	dynamic keyboards
	
2002-04-02	David Bolter <david.bolter@utoronto.ca>

	* qwerty.kbd: 
	Added a branch key for testing AccessibleEditableText operations.

	* gok/: gok-key.c, gok-key.h, gok-keyboard.c, gok-keyboard.h,
	gok-spy.c, gok-spy.h: 
	Changes related to implementing a keyboard for AccessibleEditableText 
	operations. (Note a merge conflict cropped up with gok-keyboard)

2002-04-02	Chris Ridpath <chris.ridpath@utoronto.ca>

	* gok/gok-keyboard.c: Font size is now recalculated when the user
	resizes the keys from the settings dialog.

	* gok.rc: Added a style for the word completion keys.

	* gok/main.c: Made the window's initial size easier to find.

	* gok/: gok-key.c, gok-key.h, gok-keyboard.c, gok-keyboard.h: The
	font size for key labels is calculated at runtime.  Font size is
	recalculated each time the keys are resized.  Keys can be assigned
	to different font size groups so that each key in the group gets
	the same font size.  Moved the code for setting the key label's
	'name' into the gok-key.c file.

	* gok/gok-word-complete.c: Word completion keys now have a
	dynamically changing font size.

	* gok/gok-button.c: Removed the call that sets the button 'name' as
	this is now done elsewhere.

	* qwerty.kbd: Added font size group numbers to keys.


2002-04-02	Simon Bates <simon.bates@utoronto.ca>

	* configure.in: Added gettext support.

	* gok/main.c: Initialized gettext.  Marked "Error: Can't read any
	keyboards!" for translating.

	* gok/Makefile.am: Defined GOK_LOCALEDIR

	* po/POTFILES.in, mk-gok-pot.sh: Added to CVS.

2002-03-28	Chris Ridpath <chris.ridpath@utoronto.ca>

	* gok/: main.c, main.h: The 'main' now stores the GOK window size.

	* gok/: gok-keyboard.c, gok-keyboard.h: Keys are now resized as the
	user resizes the GOK window.  Example keys on the settings dialog
	are updated with the new key size.  Changed the 'set_usize' call
	(deprecated) to 'set_size_request' when positioning keys.

	* gok/interface.c: Removed a 'destroy' event that is no longer
	needed.

	* gok/: callbacks.c, callbacks.h: Removed a callback that is no
	longer needed.

2002-03-27	David Bolter <david.bolter@utoronto.ca>

	* gok/: gok-key.c, gok-key.h, gok-keyboard.c, gok-keyboard.h,
	gok-spy.c, gok-spy.h, main.c, main.h: Changed code so that dynamic
	gui keyboards are built according to the currently focussed window
	(versus specifically for app or dialog).  Changed dynamic keyboard
	code to be more generic.

	* gok.rc, main.kbd: changed names/types to reflect that we are now
	interested all types of windows for dynamic gui keyboard stuff.

2002-03-27	Simon Bates <simon.bates@utoronto.ca>

	* gok/: gok-sound.c, gok-sound.h: Added to CVS.

	* gok/Makefile.am: Added gok-sound.h and gok-sound.c to gok_SOURCES

	* gok/main.c: Included "gok-sound.h".  Added a call to
	gok_sound_initialize().  Added a call to gok_sound_shutdown(). 
	Changed the way that the extensions of keyboard filenames are
	tested, compares the end of the string rather than a substring
	search.

	* gok/gok-keyboard.c: Included "gok-sound.h".  Added a call to
	gok_sound_play() in gok_keyboard_output(GokKey*).

	* configure.in: Added a test, AC_ARG_ENABLE, to test for a command
	line option '--enable-esd'.

2002-03-26	Chris Ridpath <chris.ridpath@utoronto.ca>

	* gok/: main.c, main.h: Keyboard now centers itself over the center
	point.

	* gok/gok-keyboard.c: Keyboard now centers itself over the center
	point.	Keys will be resized to prevent GOK window from growing
	larger than screen.  GOK window will move itself onscreen when
	keyboard layout changes if it is offscreen.

	* gok/gok-data.c: Now setting the 'data changed' flag when the
	keyboard center location is changed.

	* gok/: callbacks.c, callbacks.h: Added callbacks so I get notivied
	when the window is moved and resized.
	
2002-03-26	David Bolter <david.bolter@utoronto.ca>

	* gok/: gok-key.c, gok-key.h: 
	added key types: KEYTYPE_BRANCHDIALOG, and KEYTYPE_BRANCHGUIACTIONS, 
	and related code.

	* gok/: main.c, main.h: 
	added code related to dynamic dialog keyboards.

	* gok/: gok-keyboard.c, gok-keyboard.h: 
	added dynamic gui keyboard code, for use with dialogs (but can be 
	used for toolbars)

	* gok/: gok-spy.h, gok-spy.c: 
	added gok_spy_register_dialogchangelistener and
	gok_spy_deregister_dialogchangelistener, and other code to related
	to dialogs.

	* gok.rc: added style_button_branchdialog, and
	style_button_branchguiactions
	
	* main.kbd: added branch to dialog key

2002-03-19  Bill Haneman <bill.haneman@sun.com>

	* gok.rc:
	Added text and base style RGBs for style_button_normal;
	Added style "default", with font_name = "Sans Bold 14"

2002-03-19  Gok Team

	* hold-scanning.xam: New access method.

	* main.kbd: removed some bogus test keys 'a' and 'abc' which were
	causing problems for the csun demo.

2002-03-18 16:08  Chris Ridpath <chris.ridpath@utoronto.ca>

	* gok/switchapi.c: Removed error message that is generated when no
	joystick is plugged in. (We don't need this.)

	* gok/gok-spy.c: Fixed bug in freeing first object in repository.

	* gok/main.c: Keys that branch to the menu and toolbar layouts are
	validated each time the app changes.

	* gok/gok-keyboard.h: Keys that branch to the dynamic menu and
	toolbar layouts are validate each time the app changes.

	* gok/: gok-settings-dialog.c, gok-settings-dialog.h: Added
	accessor method to return pointer to window.

	* gok/interface.c: Control needed valid label.

	* gok/: gok-page-accessmethod.c, gok-page-accessmethod.h: Can now
	change access method from this page.

	* gok/gok-keyboard.c: Fixed bugs: Empty word prediction key no
	longer crashes when selected.  Menu layout keyboards no longer
	resize to 0.

2002-03-15 16:28  Gok Team

	* qwerty.kbd: fixed Return keysym code (was Enter)

	* gok/gok-chunker.c: Fixed bug with row/column not selecting end of
	row character.

	* gok/gok-keyboard.c: Fixed bug with uninitialized keyboard
	pointer.

	* test.kbd: added a key to cause a shell to open (not implemented)

	* README: first real README contents added

2002-03-14 16:03  Gok Team (Chris and David)


	* gok/: gok-page-wordcomplete.c, gok-page-wordcomplete.h: 
	Initial version of the settings page for word completion.

	* gok-settings.xml, main.kbd, qwerty.kbd, test.kbd: 
	Updated keyboard files.

	* dwell-selection.xam: First version of dwell selection.

	* gok/: Makefile.am, callbacks.c, gok-button.c, gok-button.h,
	gok-key.c, gok-key.h, gok-keyboard.c, gok-keyboard.h,
	gok-settings-dialog.c, gok-spy.c, gok-word-complete.c,
	gok-word-complete.h, interface.c, main.c: 
	Several changes to word completion and dynamic menus.

	* gok/: gok-data.c, gok-data.h: 
	Added word-completion number of predictions to data.

	* gok/callbacks.h: 
	Stopped the word prediction checkbox from turning the WP on/off.

	* gok/switchapi.c: 
	added linux precompiler directive for linux only joystick switch stuff.

	* gok/gok-scanner.c: 
	calls keyboard instead of chunker for key output.

	* gok/: gok-keyboard.c, gok-keyboard.h: 
	added: 
		int gok_keyboard_output_selectedkey(void); 
		void gok_keyboard_output(GokKey* pKeySelected);
		(as well as dynamic menu keyboard creation, and menu item activation code)

	* gok/: gok-spy.c, gok-spy.h, gtkjoyswitch.h, switchapi.c,
	switchapi.h: attempt at fixing line endings

	* gok/: gok-chunker.c, gok-chunker.h: 
	removed: 
		int gok_chunker_output_selectedkey (void);
	added: 
		GokKey* gok_chunker_get_selectedkey(void); 
		GokKey* gok_chunker_get_highlightedkey(void);


2002-03-13 Chris Ridpath <chris.ridpath@utoronto.ca>
           David Bolter <david.bolter@utoronto.ca>

    Added dynamic keyboard support (using at-spi).
    User settings UI work.
    Switch API, and USB joystick implementation.
    Word completion.
    Access method work.
    * files too numerous to mention (too long since last commit)
    
2002-03-12 Bill Haneman <bill.haneman@sun.com>

	* gok/gok-chunker.c: (gok_chunker_output_selectedkey):
	Initial implementation for direct key synthesis; we
        now call XStringToKeysym, using the 'Output' string
        from the selected GokKey structure, to get the keysym
        we want to synthesize.

	* gok/qwerty.kbd:
	Edits so that the 'Output' elements of keys match what the
	X Server uses for Strings (allows XStringToKeysym lookup
	above to work).

2002-02-20 Chris Ridpath <chris.ridpath@utoronto.ca>
	File name changes and several code changes.

2002-02-08 David Bolter <david.bolter@utoronto.ca>
	Interim commit of numerous changes related to directed navigation of keyboard

2002-01-30 Gok Team <david.bolter@utoronto.ca>
	First check-in of gok source and build tools
	
2002-01-08  Marc Mulcahy  <marc.mulcahy@sun.com>

	* .cvsignore gok/.cvsignore: added .cvsignore files

2001-01-08  Marc Mulcahy  <marc.mulcahy@sun.com>

	Initial check-in of Gok skeleton into CVS
