2005-02-10 Bill Haneman <bill.haneman@sun.com>

	* gok/main.c:
	(gok_main_warn_corepointer): Reinstate, as wrapper around
	gok_main_warn.  This allows us to track the posting of the
	corepointer warning separately from the other uses of the 
	warning dialog.
	(gok_main_close_warning): New method, which we register as the
	default callback for the warning dialog 'ok' button.
	(gok_main_warn): Take an 'okfunc' GCallback as well as a
	'cancelfunc.'	
	(gok_main_close, gok_sig_handler): 
	Call gok_input_restore_corepointer() in case we've swapped 
	out the core pointer.
	
	* gok/gok-button.c:
	(gok_button_enter_notify): Use new api for gok_main_warn_corepointer.
	
	* gok/gok-input.c:
	Remove instances of XFreeDeviceList, as we now must keep the list
	until we exit.
	(gok_input_extension_filter): Moved here from callbacks.c.
	Post the input device mismatch warning if events are detected
	from something other than the expected input device, 
	and allow user to accept the new device or reject it in favor of
	the old one.
	(gok_input_init): Changed signature to omit the GokInput
	param, since we always init all the devices.
	Store "current_input" as a static.
	(gok_input_ext_devices_exist): Simplify, just return whether the
	persisted GokInfo list is empty or not.
	(gok_input_open): Moved.
	(gok_input_close): Moved.
	(gok_input_get_device_list): Return a persistent list which we
	create on the first request.  Call gok_input_open on each device
	found - we must do this in order to find the device id, and other
	data. 
	(find_input): Reimplemented to use the persistent list.
	(gok_input_find_by_id): Reimplemented to use the persistent list.
	(gok_input_init): Use the persistent list, and select for all
	extension events on all non-core input devices.
	(gok_input_open_all): Removed.
	(gok_input_close_others): Close all but the currently specified
	device.
	(gok_input_get_current) : Revise to cache the current input
	device.
	(gok_input_restore): Call gok_input_close_others.
	(gok_input_restore_corepointer): New, call this to restore the
	saved corepointer.
	(gok_input_detach_corepointer): Call
	gok_input_init_device_event_list when swapping out the core
	pointer, to ensure that the relevant events are selected for
	and the pointer's extension device is open.
	Don't call XFreeDeviceList twice (!).
	(gok_input_init_device_event_list): Refactored out of gok_input_init.

2005-02-09  Bill Haneman <bill.haneman@sun.com>

	* gok/callbacks.c:
	(on_window1_enter_notify): Don't reset
	cursor warping on enter-notify if the notification
	comes from a contained window.  Fixes #166779.

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

	* gok/gok-spy.c: 
	(gok_spy_concatenate_child_names): made recursive.
	(gok_spy_append_node): added param to function call above. 
	Thanks Harry Lu <harry.lu@sun.com> for the initial patch.
	Fixes bug #159163