2003-07-07 Padraig O'Briain <padraig.obriain@sun.com>
[platform/core/uifw/at-spi2-atk.git] / ChangeLog
1 2003-07-07  Padraig O'Briain <padraig.obriain@sun.com>
2
3         * cspi/spi_event.c (AccessibleEvent_unref): Update code to free
4         resources allocated for AccessibleEvent. See cspi_event().
5
6         * cspi/spi_streamablecontent.c (cspi_streams_close_all): Set
7         static variable streams to NULL.
8
9         * cspi/bonobo/cspi-bonobo-listener.c (cspi_event):
10         Update so that AcessibleEvent_ref will work.
11
12         This fixes bug #116624.
13
14 2003-07-06  Jordi Mallach  <jordi@sindominio.net>
15
16         * configure.in (ALL_LINGUAS): Added "ca" (Catalan).
17
18 2003-07-06  Christophe Merlet  <redfox@redfoxcenter.org>
19
20         * configure.in: Added "fr" (French) to ALL_LINGUAS.
21
22 2003-07-02  Christian Neumair  <chris@gnome-de.org>
23
24         * configure.in: Added "de" (German) to ALL_LINGUAS.
25
26 2003-07-01  Dafydd Harries  <daf@parnassus.ath.cx>
27
28         * configure.in: Added "cy" (Welsh) to ALL_LINGUAS.
29
30 2003-07-01  Miloslav Trmac  <mitr@volny.cz>
31
32         * configure.in: Addded "cs" to ALL_LINGUAS. Why is it commented out?
33
34 2003-07-01  Artur Flinta  <aflinta@cvs.gnome.org>
35
36         * configure.in: Added "pl" to ALL_LINGUAS.
37
38 2003-07-01  Gil "Dolfin" Osher <dolfin@rpg.org.il>
39
40         * configure.in: Added "he" (Hebrew) to ALL_LINGUAS.
41
42 2003-06-30  Bill Haneman <bill.haneman@sun.com>
43         
44         * libspi/action.c:
45         (get_action_from_servant): 
46         Removed assertion that action is implemented on an AtkObject.
47
48         * libspi/hyperlink.c:
49         (spi_hyperlink_new):
50         Aggregate AccessibleAction interface on the hyperlink object if
51         the object implements AtkAction.  (This convention is used in
52         gtkhtml2.)
53         
54 2003-06-30  Bill Haneman <bill.haneman@sun.com>
55
56         * configure.in: Revved to 1.3.5.
57         
58         * registryd/Accessibility_Registry.server.in.in:
59         Marked up appropriate strings for translation.
60         
61         * atk-bridge/bridge.c: Marked a couple of
62         user-visible warnings for translation.  Questionable
63         whether they are really useful, but possibly so.
64
65         
66 2003-06-28  Christian Rose  <menthos@menthos.com>
67
68         * configure.in: Added "sv" to ALL_LINGUAS.
69
70 2003-06-26  Bill Haneman <bill.haneman@sun.com>
71
72         * registryd/registry.c: 
73         (spi_registry_object_finalize): Unref the deviceeventcontroller.
74         (registry_defer_on_event): Defer focus: events, this is an
75         improvement to the patch for bug #108664.
76
77         * TODO: Update with 2.4/"Dev Complete" items.
78
79 2003-06-26  Padraig O'Briain <padraig.obriain@sun.com>
80
81         * atk-bridge/bridge.c:
82         (spi_atk_bridge_init_event_type_consts): Ensure that this function only
83         looks up signals once.
84         (atk_bridge_init): Call spi_atk_bridge_init_event_type_consts only
85         if doing registration.
86         (spi_atk_bridge_toplevel_added): Call spi_bridge_init_event_type_consts
87         when doing registration.
88         
89         This fixes bug #115014.
90
91 2003-06-25  Padraig O'Briain <padraig.obriain@sun.com>
92
93         * atk-bridge/bridge.c:
94         (atk_bridge_init): Add signal handler for children-changed:remove on
95         root when in a BonoboComponent.
96         (spi_atk_bridge_toplevel_added): Call spi_atk_bridge_do_registration
97         for first toplevel only other incrememt variable toplevels.
98         (spi_atk_bridge_toplevel_removed): For last toplevel deregister 
99         application and remove listeners.
100         (spi_atk_bridge_get-registry): Change NULL to CORBA_OBJECT_NIL for
101         consistency.
102         (spi_atk_deregister_event_listeners): New function which removes
103         listeners.
104         (reinit_register_vars): New fuction which reinitializes variables.
105
106         This fixes bug #111578.
107
108 2003-06-13  Bill Haneman <bill.haneman@sun.com>
109
110         * configure.in: version 1.3.4.
111
112         * cspi/spi_accessible.c:
113         Changed test of obj==NULL to obj==CORBA_OBJECT_NIL.
114
115
116 2003-06-13  Michael Meeks  <michael@ximian.com>
117
118         * cspi/bonobo/cspi-bonobo.c (cspi_check_ev): use it.
119
120         * cspi/spi_main.c (cspi_peek_ev): impl.
121
122 2003-06-11  Padraig O'Briain <padraig.obriain@sun.com>
123
124         * cspi/spi-roletypes.h: Add role SPI_ROLE_AUTOCOMPLETE
125
126         * cspi/spi_accessible.c (cspi_init_role_table): Add ROLE_AUTOCOMPLETE.
127
128         * docs/reference/cspi/tmpl/spi_accessible.sgml: Add role 
129         SPI_ROLE_AUTOCOMPLETE
130
131         * idl/Accessibility_Role.idl: Add role ROLE_AUTOCOMPLETE
132
133         * libspi_accessible.c(spi_init_role_lookup_table): Add lookup
134         for ROLE_APPLICATION and ROLE_AUTOCOMPLETE
135
136 2003-06-11  Bill Haneman <bill.haneman@sun.com>
137
138         * libspi/streamablecontent.h:
139         * libspi/streamablecontent.c:
140         New files, provide implementation/wrappers for
141         Accessibility_StreamableContent.
142
143         * cspi/spi_streamablecontent.c:
144         Connected the C wrappers to the libspi C bindings.
145         (AccessibleStreamableContent_close): New method.
146
147         * cspi/spi.h:
148         (AccessibleStreamableContent_close): New method, needed
149         since we have an "open, [seek], read, close" model in cspi.
150         
151 2003-06-11  Bill Haneman <bill.haneman@sun.com>
152
153         Fix for #108664; Padraig's revision of my original patch.
154         
155         * registryd/registry.h:
156         Added event queue list, is_queuing, and exit_notify_timeout
157         to the registry struct.
158         
159         * registryd/registry.c:
160         (registry_init): Initialize new struct from registry.h.
161         (impl_registry_notify_event):
162         Filter events before notifying, in case some need to be
163         deferred, etc.
164         (registry_filter_event): New,
165         we defer certain incoming events (for instance 
166         window:deactivate) because we may wish to hide
167         or reject them based on pending events.  This is
168         mostly a workaround for bug #108664.
169         (registry_queue_event, registry_start_queue): New.
170         (registry_defer_on_event): Test event to see if it
171         initiates queuing.
172         (registry_reset_on_event): Returns TRUE if the
173         event should cause a queue reset.
174         (registry_discard_on_event): Returns TRUE if the event
175         should cause the previous queue contents to be discarded.
176         (registry_timeout_flush_queue): Flushes the pending event
177         queue if no reset/discard-triggering events have come in 
178         within the timeout period.
179         (registry_emit_event): New.
180         (registry_clone_notify_context): New, used when queueing the 
181         event notify contexts.
182
183 2003-06-10  Bill Haneman <bill.haneman@sun.com>
184
185         * configure.in: Version revved to 1.3.2, lt 0.9.2
186         Incremented ATK required version to 1.3.4.
187
188         * cspi/spi_registry.c:
189         (SPI_generateKeyEvent):
190         We now pass the keystring along if it's non-null.
191         
192         * registryd/deviceeventcontroller.c:
193         (keysym_mod_mask): New method, returns modifier mask 
194         required to generate a keysym from a given keycode.
195         (dec_synth_keysym): New method.
196         (dec_synth_keystring): New method.
197         (dec_get_modifier_state): New method.
198         (dec_lock_modifiers): New
199         (dec_unlock_modifiers): New.
200         (dec_keysym_for_unichar): New, rather brute-force
201         conversion from UCS-4 to X KeySyms.  Only works for
202         Latin at the moment, with partial implementations for
203         Greek, Hebrew, and (incomplete) Katakana.
204         (impl_generate_keyboard_event): Now implement 
205         "KEYSTRING" synthesis and implement "KEYSYM"
206         synthesis properly.
207         (keycode_from_keysym): Improved, passes a returned
208         modmask value now if the corresponding param is non-NULL.
209         
210         Fixes bugs #92143  and #109776.
211
212         * test/Makefile.am:
213         * test/keysynth-test.c:
214         New test program for key synthesis, to confirm fixes for
215         above bugs.
216
217
218 2003-06-10  Padraig O'Briain <padraig.obriain@sun.com>
219
220         * cspi/spi.h: Add relation SPI_RELATION_POPUP_FOR
221
222         * cspi/spi_accessible.c (cspi_init_relation_type_table):
223         Add line for RELATION_POPUP_FOR
224
225         * docs/reference/cspi/tmpl/spi_relation.sgml: 
226         Add relation SPI_RELATION_POPUP_FOR
227
228         * docs/reference/cspi/tmpl/spi_stateset.sgml: 
229         Change state SPI_STATE_INCONSISTENT to SPI_STATE_INDETERMINATE 
230
231         * idl/Accessibility_Reloation.idl: Add RELATION_POPUP_FOR.
232
233         * libspi/relation.c (spi_init_relation_type_table): 
234         Add line for RELATION_POPUP_FOR
235
236 2003-06-10  Padraig O'Briain <padraig.obriain@sun.com>
237
238         * cspi/atk-bridge/bridge.c (spi_atk_bridge_exit_func): Check if 
239         there are still windows which have not been deleted and emit 
240         window:deactivate, if necessary and window:destroy events.
241         This fixes bug #114370. The change on June 5th was not correct.
242
243 2003-06-09  Bill Haneman <bill.haneman@sun.com>
244
245         * configure.in: Revved to 1.3.3. (lt-version 9:2:9, .so.0.9.2)
246
247         * cspi/spi.h: 
248         (SPI_dupString): Allow dup-ing of a string such that it's safe to
249         SPI_freeString it.
250         New methods for client exception handling and interception.
251         (SPI_exceptionHandlerPush): New - push a handler onto the stack.
252         (SPI_exceptionHandlerPop): You guessed it... 
253         (SPI_getSourceType): Return the type of object which offended.
254         (SPI_getExceptionCode): Return an enum code telling, possibly, 
255         what sort of thing went wrong, i.e. DISCONNECT (object died), etc.
256         (SPIAccessibleException_getSource): get the source object for
257         exceptions that come from Accessibles, if SPIExceptionSourceType is
258         SPI_EXCEPTION_SOURCE_ACCESSIBLE.
259         (SPIException_getDescription): New, returns a string description of
260         the problem.  [Not yet a stable ABI, strings are not frozen]
261
262         * cspi/spi-private.h:
263         Added implementation details of opaque SPIException
264         structure.
265         
266         * cspi/spi_main.c:
267         Implementations of above.  Also
268         (_cspi_exception_throw): new private method that 
269         dispatches exceptions to handlers, called from cspi-bonobo.c
270
271         * cspi/bonobo/cspi-bonobo.c:
272         (cspi_check_ev): call _cspi_exception_throw.
273         Don't print a warning message if the exception has been 
274         handled by _cspi_exception_throw.
275         
276 2003-06-05  Padraig O'Briain <padraig.obriain@sun.com>
277
278         * cspi/atk-bridge/bridge.c (spi_atk_bridge_exit_func): Check if 
279         there are still windows which have not been deleted and emit 
280         window:deactivate, if necessary and window:destroy events.
281         This fixes bug #114370.
282
283 2003-06-03  Bill Haneman <bill.haneman@sun.com>
284
285         * cspi/spi_main.c:
286         (cspi_accessible_is_a): Make non-fatal 
287         if the object reference is dead.
288
289 Mon Jun  2 15:35:29 2003  Jonathan Blandford  <jrb@redhat.com>
290
291         * cspi/spi_main.c: #include <stdio.h>
292         * test/simple-at.c: ditto
293         * test/event-listener-test.c: ditto
294         * test/screen-review-test.c: ditto
295
296 2003-05-30  Michael Meeks  <michael@ximian.com>
297
298         * test/test-simple.c (main): use CORBA_ORB_perform_work
299         instead of an unnecessary linc_ call.
300
301 2003-05-20  Padraig O'Briain <padraig.obriain@sun.com>
302
303         * cspi/spi-statetypes.h, cspi/docs/tmpl/spi_stateset.sgml:
304         Add SPI_STATE_INDETERMINATE.
305
306         * cspi/spi_accessible.c (spi_state_to_corba): Add support for
307         INDETERMINATE.
308
309         * idl/Accessibility_State.idl: Add support for STATE_INDETERMINATE.
310
311         * libspi/stateset.c (init_state_type_tables): Add support for
312         INDETERMINATE.
313
314 2003-05-19  Padraig O'Briain <padraig.obriain@sun.com>
315
316         * configure: Update versions of atk and gail required.
317         This fixes bug #113268.
318         
319 2003-05-02  Bill Haneman  <bill.haneman@sun.com>
320
321         * configure.in: Revved micro version to 1.3.1 (because of build fix).
322
323 2003-05-02  Frederic Crozat  <fcrozat@mandrakesoft.com>
324
325         * libspi/Makefile.am:
326         Ensure headers are generated before being used by c sources.
327
328 2003-05-01  Bill Haneman <bill.haneman@sun.com>
329
330         * configure.in:
331         Simplified lt versioning rules.
332         Incremented version to 1.3.0, to indicate that we're on the
333         unstable branch now.  
334
335 2003-04-29  Padraig O'Briain <padraig.obriain@sun.com>
336
337         * docs/reference/cspi/Makefile.am, docs/reference/idl/Makefile.am:
338         Add MKDB_OPTIONS=--outtput-format=xml
339
340         * docs/reference/cspi/at-spi-cspi-docs.sgml
341         docs/reference/idl/at-spi-idl-docs.sgml:
342         Convert to Docbook XML.
343
344         This fixes bug #111793.
345
346 2003-04-25  Padraig O'Briain <padraig.obriain@sun.com>
347
348         * cspi/spi-listener.h: Add documentation for AccessibleDeviceEventType,
349         AcccessibleKeyEventType, AccessibleKeyMaskType.
350
351         * cspi/spi-roletypes.h: Update documentation for AccessibleRole.
352
353         * cspi/state-types.h: Add documentation for AccessibleState.
354
355         * cspi/spi.h: Add documentation for AccessibleTextBoundaryType,
356         AccessibleTextClipType, AccessibleRelationType, AccessibleCoordType,
357         AccessibleKeySynthType, AccessibleKeyListenerSyncType, 
358         AccessibleComponentLayer.
359
360         * cspi/spi_event.c, cspi/spi_registry.c, cspi/spi_text.c: Fix bugs 
361         in documentation.
362
363         * docs/reference/cspi/at-spi-cspi-sections.txt: Add undefined symbols.
364
365         * docs/reference/cspi/tmpl/spi_registry.sgml: Add description of 
366         Accessible.  Add description of AccessibleEvent, 
367         AccessibleEventListenerCB.
368
369         * docs/reference/cspi/tmpl/spi_event.sgml: Update with extra 
370         documentation.
371
372         * docs/reference/cspi/tmpl/spi_registry.sgml: Update with extra 
373         documentation. Add description of AccessibleKeystrokeListenerCB,
374         AccessibleKeyEventMask, AccessibleModifierMaskType, 
375         AccessibleKeyMaskType, AccessibleKeystroke, AccessibleDeviceEvent,
376         AccessibleDeviceEventMask, AccessibleDeviceListenerCB. 
377
378         * docs/reference/cspi/tmpl/spi_stateset.sgml: Add description of
379         AccessibleStateSet.
380
381         * docs/reference/cspi/tmpl/spi_text.sgml: Update with extra 
382         documentation.
383
384         This fixes bug #104730.
385
386 2003-04-24  Padraig O'Briain <padraig.obriain@sun.com>
387
388         * atk-bridge/bridge.c (spi_init_keystroke_from_atk_key_event):
389         Set is_text field of Accessibility_DeviceEvent data structure.
390
391         * cspi/bonobo/cspi-bonobo-listener.c (cspi_device_event): Set
392         is-text field of AccessibleDeviceEvent data structure.
393
394         This addresses part of bug #108666.
395
396         * registryd/devcieeventcontroller.c: Unset debug option.
397
398 2003-04-14  Padraig O'Briain <padraig.obriain@sun.com>
399
400         * cspi/accessible.c:
401         (cpi_initial_relation_type_table): New function which initializes 
402         mapping between Accessibility_RelationType and AccessibleRelationType.
403         (cspi_relation_type_from_spi_relation_type): New function which
404         translates an Accessibility_RelationType into an AccessibleRelationType.
405         (AccessibleRelation_getRelationType): Use 
406         cpi_relation_type_get_spi_relation_type to return correct value.
407         (spi_state_to_corba): Return correct type for default case.
408
409         * cspi/spi_registry.c (SPI_registerAccessibleKeyStrokeListener):
410         Use Accessibility_EventType instead of Accessibility_KeyEventType.
411
412         * cspi/cspi-bonobo-listener.c:
413         Remove semicolon after BONOBO_TYPE_FUNC. Add casts to avoid compiler
414         warnings.
415
416         * libspi/accessible.c, libspi/action.c, libspi/application.c,
417         libspi/base.c, libspi/component.c, libspi.devicelistener.c,
418         libspi/editabletable.c, libspi/hyperlink.c, libspi/hypertext.c,
419         libspi/image.c, libspi/listener.c, libspi/selection.c, 
420         libspi/stateset.c, libspi/table, libspi/text.c, libspi/value.c, 
421         registryd/desktop.c, registryd/registry.c:
422         Remove semicolon after BONOBO_TYPE_FUNC_FULL.
423
424         * libspi/eventlistener.c
425         Remove semicolon after BONOBO_TYPE_FUNC.
426
427         * libspi/relation.c:
428         Remove semicolon after BONOBO_TYPE_FUNC_FULL.
429         (spi_init_relation_type_table): Initialize using correct type.
430
431         * registryd/desktop.c:
432         Remove semicolon after BONOBO_TYPE_FUNC_FULL.
433         (spi_keystroke_from_x_key_event): Use Accessibility_EventType instead 
434         of Accessibility_KeyEventType.
435
436         * test/key-listener-test.c (report_tab_key_event): Use fprintf
437         instead of g_print.
438
439         * tests/simple-at.c, tests/screen-review-test.c:
440         Add include for <strings.h>.
441
442         * tests.stress-test.c:
443         Add includes for <unistd.h> and <bonobo/bonobo-main.h>
444
445         These changes fix compiler warnings when using FORTE compiler on
446         Solaris; fixes bug #107479.
447
448         
449 2003-04-10  Bill Haneman <bill.haneman@sun.com>
450
451
452         * configure.in: revved to 1.1.10
453         
454         * libspi/keymasks.h:
455         (SPI_KEYMASK_NUMLOCK): Added.
456
457         * registryd/deviceeventcontroller.c:
458         (spi_key_event_matches_listener): AND with a smaller
459         bitmask (as we should).  
460         (spi_dec_translate_mask): 
461         New method, sets the virtual NumLock modifier bit
462         if numlock is on.  Eventually it can handle other virtual
463         modifier bits if needed, or other marshalling from
464         at-spi modifier masks to platform (X) masks.
465         (spi_dec_key_listener_new):
466         Call spi_dec_translate_mask to set up virtual mod bits
467         in the 'mask' field when creating a new listener struct.
468         (spi_dec_emit_modifier_event):
469         Set the virtual (i.e. NumLock) bits before emitting event.
470         (spi_controller_register_with_devices):
471         Query for the NumLock modifier 'physical' bit if Xkb is
472         present, for use in above methods.
473
474         Fix for 107261.
475         
476 2003-04-10  Bill Haneman <bill.haneman@sun.com>
477         
478         * registryd/deviceeventcontroller.c:
479         (spi_keystroke_from_x_key_event):
480         Instead of checking to see if the keysym is
481         printable, check the string from XLookupString
482         if available, get the first unicode character from it,
483         and call g_unichar_isprint to determine whether the
484         is_text flag should be TRUE or FALSE.
485         
486         Fix for bug 110419.
487
488 2003-04-02  Padraig O'Briain <padraig.obriain@sun.com>
489
490         * atk-bridge/bridge.c: Add support for extended events
491         * cspi/spi_event.c: Add documentation and implementation for
492         extended events.
493         * tests/event-listener-test.c: Add tests for extended events.
494
495         This fixes bugs #100424 and #100426.
496  
497 2003-04-02  Padraig O'Briain <padraig.obriain@sun.com>
498
499         * configure.in: Add 100 to AT_SPI_BINARY_AGE and update calculation
500         of LT_CURRENT. This fixes bug #89350.
501
502 2003-04-01  Padraig O'Briain <padraig.obriain@sun.com>
503
504         * atk-bridge/bridge.c (spi_bridge_signal_listener):  Add check for
505         number of signal parameter values before accessing them. This fixes
506         bug #109626.
507
508 2003-04-01  Bill Haneman <bill.haneman@sun.com>
509
510         * configure.in: Fixed duplicate inclusion of -lspi.
511         * branched for gnome-2-2/HEAD.  
512         [created tag "gnome-2-2"]
513
514 2003-03-07  Bill Haneman <bill.haneman@sun.com>
515
516         * configure.in: 1.1.9 release.
517         * NEWS: updated.
518         
519 2003-03-07  Bill Haneman <bill.haneman@sun.com>
520
521         [needed by GOK, to fix bugs 107985 and 107988]
522         * registryd/deviceeventcontroller.c:
523         (spi_dec_clear_unlatch_pending):
524         New method, unsets the 'unlatch' mask for XkbStateNotifyEvents.
525         (spi_dec_set_unlatch_pending):Revised DEBUG comment.
526         (spi_dec_init_mouse_listener):Emit warning if mouse button
527         passive grab fails.
528         (spi_device_event_controller_forward_mouse_event):
529         Removed unnecessary parens from a conditional.
530         (global_filter_fn):Added TODO comment.
531         (impl_generate_keyboard_event):
532         Cancel a pending relatch if a 'delatching' key was 
533         synthesized.
534         
535 2003-03-07  Padraig O'Briain <padraig.obriain@sun.com>
536
537         * atk-bridge/bridge.c:
538         Change atk_signal_child_changed to atk_signal_children_changed. 
539         Reorganize code in spi_atk_bridge_signal_listener().
540
541         * test/event-listener-test.c:
542         Add children_changed_listener and report_children_changed_event()
543         to test AccessibleChildEvent_getChildAccessible.
544
545 2003-03-05  Padraig O'Briain <padraig.obriain@sun.com>
546
547         * cspi/spi_event.c (cspi_internal_event_get_text): Change
548         g_strdup to CORBA_String_dup (bug #105291)
549
550         * test/event-listener-test.c (report_text_event): Add call to
551         SPI_freeString.
552
553 2003-02-28  Bill Haneman <bill.haneman@sun.com>
554
555         * registryd/deviceeventcontroller.c:
556         (spi_keystroke_from_x_key_event): 
557         Fix string and keysym return codes to match modifier state. 
558         [bug #107256]
559
560 2003-02-28  Bill Haneman <bill.haneman@sun.com>
561
562         * registryd/deviceeventcontroller.c:
563         (spi_keystroke_from_x_key_event): 
564         Fix segv due to improper use of isprint(c). [bug #107254]
565
566 2003-02-24  Bill Haneman <bill.haneman@sun.com>
567
568         * cspi/spi_text.c:
569         (get_accessible_text_boundary_type):
570         Move default return value to (new) default case in switch.
571         (get_accessible_text_clip_type):
572         Move default return value to (new) default case in switch.
573         
574         * libspi/application.c:
575         (lookup_toolkit_event_for_name, reverse_lookup_name_for_toolkit_event):
576         Remove unused methods.
577         (impl_accessibility_application_register_object_event_listener):
578         Remove unused methods.
579
580         * libspi/value.c:
581         Added #include of <math.h>.
582
583         * registryd/deviceeventcontroller.c:
584         (spi_dec_ungrab_mouse): Bracketed with #ifdefs, since 
585         we don't currently use this method.
586         (spi_dec_init_mouse_listener): Don't call XkbGetMap unless
587         have_xkb is TRUE.
588         (impl_generate_key_event):
589         Remove unused variables.
590         (impl_generate_mouse_event):
591         Initialize button to zero, just in case we get an invalid
592         input.  Added support for mouse buttons 4 and 5.
593         (spi_device_event_controller_new):
594         Removed unused variable declaration for 'private'.
595         (registry.h):
596         Added #include of <gdk/gdk.h>
597
598 2003-02-14  Padraig O'Briain <padraig.obriain@sun.com>
599
600         * configure.in: Update to work when X is not installed in expected 
601         location. Fixes bug #105836.
602
603         * atk-bridge/bridge.c
604         (spi_atk_bridge_init_event_type_consts): Look up "link-selected" for
605         AtkHypertext
606         (spi_atk_register_event_listener): Add signal listener for 
607         link-selected
608         (spi_atk_bridge_signal_listener): Event event when link-selected
609         signal is emitted. (bug #104622)
610
611         * cspi/spi_event.c (cspi_internal_event_get_text): Call g_strdup()
612         on returned string. (bug #105291)
613
614         * test/event-listener-test.c: Add test for link-selected.
615         
616 2003-02-14  Padraig O'Briain <padraig.obriain@sun.com>
617
618         * atk-bridge/Makefile.am: Correct typo in previous commit.
619
620 2003-02-13  Padraig O'Briain <padraig.obriain@sun.com>
621
622         * atk-bridge/Makefile.am: Allow for build directory to be different 
623         from source directory
624
625         * registryd/Makefile.am: Allow for build directory to be different
626         from source directory
627
628         Bug #104744.
629
630 2003-01-29  Bill Haneman <bill.haneman@sun.com>
631         
632         * cspi/Makefile.am:
633         Fixed dependencies for libcspi so that libspi gets pulled in
634         properly.  Fixes 104741.
635
636         * cspi/spi.h:
637         * cspi/spi_event.c:
638         Clean up inline docs a little.
639
640 2003-01-27  Padraig O'Briain <padraig.obriain@sun.com>
641
642         * registryd/desktop.c: Implement AccessibleComponent for SpiDesktop.
643         This is done by implementing AtkComponent for SpiAtkDesktop, which is
644         the AtkObject within an SpiDesktop.
645         This addresses bug #101524.
646
647         * registryd/deviceeventcontroller.c (spi_device_event_controller_init):
648         Remove call to gdk_init().
649
650         * registryd/registry.c (spi_registry_init): Add call to gdk_init()
651         so that Display is set when SpiDesktop is created.
652
653 2003-01-21  Padraig O'Briain <padraig.obriain@sun.com>
654
655         * registryd/deviceeventcontroller.c: Add include of <sys/time.h>
656         This fixes bug #102830.
657
658 2003-01-15  Padraig O'Briain <padraig.obriain@sun.com>
659
660         * test/test-simple.c: Update to take account of fact that GailButton 
661         now implements AtkText.
662         (create_text_window): Set name on AtkObject for GtkEntry.
663         (validate_accessible): Check accessible name before calling test_text().
664
665         * libspi/Makefile.am: Fix problem with building outside of source
666         directory. Bug #98120.
667
668         * cpsi/spi_table.c (AccessibleTable_getNSelectedColumns): Fix
669         typo in documentation comments. Bug #94275.
670
671 2003-01-15  Padraig O'Briain <padraig.obriain@sun.com>
672
673         * libspi/text.c (impl_getBoundedRanges): Bug fix.
674
675 2003-01-10  Padraig O'Briain <padraig.obriain@sun.com>
676
677         * libspi/text.c:
678         Add includes to avoid compiler warnings on Solaris.
679         (impl_getRangeExtents): Bug fix.
680
681 2002-12-17  Bill Haneman <bill.haneman@sun.com>
682
683         Fix for 100944, [API addition approved by Gman and murrayc].
684         
685         * NEWS: updated.
686         
687         * configure.in:
688         Revved to 1.1.8.
689
690         * idl/Accessibility_Text.idl:
691         (Text::Range, Text::RangeList, TEXT_CLIP_TYPE): New typedefs
692         (Text::getRangeExtents): New method for efficient 
693         bounds query of a text range.
694         (Text::getBoundedRanges): New method for efficient
695         clipping of text to bounding boxes.
696         (unImplemented7, unImplemented8): 
697         Removed these padding methods to preserve bincompat.
698
699         * libspi/text.c:
700         (impl_getRangeExtents): implementation of new IDL.
701         (impl_getBoundedRanges): implementation of new IDL.
702         (SpiTextRect): Internal use struct.
703         (_spi_text_rect_union): internal method, calculates union of two
704         SpiTextRect bounding rects.
705         (_spi_text_range_seq_from_gslist): internal method, allows us
706         to build our sequence efficiently as a gslist then convert it
707         to a CORBA seq.
708         (_spi_bounds_contain): internal method, determines whether
709         a text character is "in" or "out" of a clip rect according to
710         values of TEXT_CLIP_TYPE.
711         (spi_text_class_init): Initialize the new methods in the epv.
712         
713         * cspi/spi.h:
714         (AccessibleTextClipType): New enum used by screen review api.
715         (AccessibleTextRange): New struct used by screen review api.
716         (AccessibleText_getRangeExtents): 
717         cspi binding for Accessibility_Text_getRangeExtents.
718         (AccessibleText_getBoundedRanges):
719         cspi binding for Accessibility_Text_getBoundedRanges.
720         (AccessibleTextRange_freeRanges): convenience method.
721         
722         * cspi/spi_text.c:
723         (AccessibleText_getRangeExtents): 
724         cspi binding for Accessibility_Text_getRangeExtents.
725         (AccessibleText_getBoundedRanges):
726         cspi binding for Accessibility_Text_getBoundedRanges.
727         (AccessibleTextRange_freeRanges): convenience method.
728         (get_accessible_text_clip_type): internal conversion method.
729         (get_accessible_text_ranges_from_range_seq): internal conversion method.
730
731         * registryd/deviceeventcontroller.c:
732         (spi_dec_mouse_check):
733         Improved behavior for mouse:abs events 
734         [same granularity as mouse:rel events, and no
735         events when mouse is idle].     
736         
737 2002-12-16  Michael Meeks  <michael@ximian.com>
738
739         * cspi/spi_accessible.c (spi_state_to_corba): rename.
740
741         * libspi/stateset.c (state_spi_to_atk): split out
742         ( fix several remote array bounds nasties )
743         (spi_atk_state_set_from_sequence, impl_contains, impl_add),
744         (impl_remove): make safe from array bounds issues.
745         (spi_atk_state_from_spi_state): impl.
746
747         * libspi/stateset.h (spi_state_set_cache_is_empty): 
748         add a set of wrapper defines to get layering right.
749
750         * cspi/spi_accessible.c: update state set stuff to
751         use it.
752
753 2002-12-14  Michael Meeks  <michael@ximian.com>
754
755         * atk-bridge/bridge.c (spi_atk_bridget_get_dec): impl.
756         to avoid 2 roundtrips to the registry per key event
757         (spi_atk_bridge_key_listener): upd.
758         (deregister_application): release the dec.
759
760         * registryd/registry.c (notify_listeners_cb):
761         bin lots of re-enterant complexity - we no longer
762         do a round-trip bonobo ref here, ensure that a single
763         listener's exception failure won't poison all other
764         notifications.
765         (impl_registry_notify_event): bin obvious memory leak.
766
767 2002-12-13  Michael Meeks  <michael@ximian.com>
768
769         * atk-bridge/bridge.c (spi_atk_bridge_focus_tracker):
770         init the ev so the error is meaningful.
771         (spi_atk_bridge_key_listener): ditto.
772
773         * cspi/spi_main.c (cspi_ev): init the ev so we start
774         with a clean slate, otherwise the first exception
775         kills us completely.
776
777         * cspi/spi_text.c (get_accessible_text_boundary_type): 
778         add a fallthrough for no warnings.
779
780         * cspi/spi_registry.c: prune unused warnings.
781
782         * cspi/spi_main.c (cspi_object_take): fix
783         mind-blowing brokenness ( by watching the compile
784         warnings )
785
786         * cspi/spi_accessible.c (Accessible_getStateSet):
787         re-impl. to use an AtkStateSet.
788         (spi_state_type_from_accessible_state),
789         (init_state_table): bin these.
790
791         * libspi/stateset.c (spi_atk_state_set_from_sequence):
792         split out from
793         (atk_state_set_from_accessibility_state_set): here.
794
795         * cspi/spi_accessible.c (spi_state_to_atk): impl.
796         (AccessibleStateSet_contains, AccessibleStateSet_ref),
797         (AccessibleStateSet_unref, AccessibleStateSet_contains),
798         (AccessibleStateSet_add, AccessibleStateSet_remove),
799         (AccessibleStateSet_equals, AccessibleStateSet_compare),
800         (AccessibleStateSet_isEmpty): re-write to use a local
801         AtkStateSet object.
802
803 2002-12-13  Bill Haneman <bill.haneman@sun.com>
804
805         * configure.in: Revved to 1.1.7 (new keymask vals).
806
807 2002-12-10  Bill Haneman <bill.haneman@sun.com>
808
809         * libspi/keymasks.h:
810         Added SPI_KEYMASK_MOD4 and SPI_KEYMASK_MOD5.
811
812 2002-12-10  Padraig O'Briain  <padraig.obriain@sun.com>
813
814         * cspi/spi_event.c 
815         (cspi_internal_event_get_object): Use CORBA_TypeCode_Equivalent() 
816         to compare two CORBA_TypeCodes.
817         (cspi_internal_event_add): Silence warning from FORTE compiler.
818
819         * cspi/bonobo/cspi_bonobo-listener.h: Add function declarations to 
820         avoid implicit declaration of functions.
821         
822 2002-12-09  Padraig O'Briain  <padraig.obriain@sun.com>
823
824         * atk-bridge/bridge.c:
825         (spi_atk_bridge_init_event_type_consts): Store signal id for
826         active-descendant-changed signal.
827         (spi_atk_register_event_listeners): Add signal listener for
828         active-descendant-changed signal,
829         (spi_atk_bridge_signal_listener): Move code in function 
830         spi_atk-signal_emit_event() into this function.
831         Add support for active-descendant-changed
832         Update support for child-changed signal.
833         (spi_bridge_window_event_listener): Silence warning.
834
835         * libspi/spi_private.[ch]:
836         (spi_init_any_object): Change second parameter from CORBA_Object to
837         CORBA_Object*.
838         Omit call to CORBA_Object_duplicate(). 
839         Set CORBA_any's _value to CORBA_Object*.        
840
841 2002-12-06  Bill Haneman  <bill.haneman@sun.com>
842
843         * configure.in:
844         Revved to 1.1.6.
845         
846         * cspi/spi.h: 
847         (AccessibleEvent_ref, AccessibleEvent_unref):
848         New methods, for persisting an event outside the emission context.
849         Must be used if the new accessor methods are to be called
850         outside of the event listener's callback.
851
852         * cspi/bonobo/cspi-bonobo.c:
853         (cspi_dup_ref): Pass 'ev' to bonobo_object_dup_ref
854         as second parameter instead of NULL, so we can call
855         cspi_check_ev afterwards.
856         
857         * cspi/spi_main.c:
858         (cspi_object_take): New internal method, 
859         converts a CORBA_Object reference to a hard ref on
860         an Accessible if possible, returning NULL if the object
861         reference is invalid or an Accessible * otherwise.
862
863         * cspi/spi_event.c:
864         (AccessibleEvent_ref): 
865         Increment the event's internal private refcount, and 
866         add the event's internal struct to an internal cache 
867         if it's not already there.
868         (AccessibleEvent_unref): 
869         Decrement the event's refcount and remove it from
870         the cspi event cache if refcount==0.
871         (cspi_event_compare): New private method.
872         Compares two event structs via their ids. Used 
873         for queue lookup.
874         (cspi_internal_event_lookup): New private method.
875         (cspi_internal_event_check): New private method,
876         a 0-order sanity check for events to make sure their
877         private data is intact.
878         (cspi_internal_event_add, cspi_internal_event_remove):
879         New private methods for managiing the event cache.
880
881         * cspi/bonobo/cspi-bonobo-listener.c:
882         (cspi_event):
883         Initialize the new private data elements (id, magic, ref_count).
884         
885         * atk-bridge/bridge.c:
886         (spi_atk_bridge_signal_listener):
887         Fixed bug #100530, passing wrong params to emission func.
888
889         * registryd/deviceeventcontroller.c:
890         (spi_dec_button_update_and_emit): 
891         Fixed type in mask bit operations; fix for #99799.
892         
893 2002-12-02  Bill Haneman  <bill.haneman@sun.com>
894
895         Removed some of the more dangerous workarounds from
896         previous commit; they are only needed by GOK, which
897         in reality should be using another method to accomplish
898         the goals.  So on reconsideration some of the workarounds
899         need to be reverted:
900         
901         * registryd/deviceeventcontroller.c:
902         (spi_keycodes_contain, spi_dec_init_keycode_list): 
903         Removed these methods, used only by a nasty hack to try
904         and detect whether a key synthesis should be allowed
905         to reset the XKB latch state or not. This code was only
906         required to work around an interaction between GOK,
907         button events, and XKB.
908         (impl_generate_key_event):
909         Removed hack at end of key generation that tried to
910         "do the right thing" if XKB latch keys were generated
911         in the midst of button press/release pairs.  
912
913         * configure.in:
914         Added a check for HAVE_XINPUT.  Not normally used yet.
915
916 2002-11-25  Bill Haneman  <bill.haneman@sun.com>
917
918         Workarounds and fixes for mouse event/XKB interaction.
919         
920         * registryd/deviceeventcontroller.c:
921         (spi_keycodes_contain, spi_dec_init_keycode_list): 
922         New internal methods.
923         (spi_dec_set_unlatch_pending):
924         Split the method that tells XKB to expect an
925         unlatch (and revert it) out of the rest of the
926         event handling code.  This method is called by the
927         two mouse event handlers (the poll and the filter).
928         (spi_dec_update_and_emit, spi_dec_mouse_check): 
929         New methods split from spi_dec_poll_mouse_moved.
930         The second one is now called from inside the filterFn
931         when an XKB delatch event is received, to determine 
932         whether to revert the delatch or not.
933         (spi_poll_mouse_moved): Refactor; also we can now
934         properly handle the case where multiple button states
935         have changed between polling cycles and we didn't get
936         notified due to another client's grab.
937         (global_filter_fn): 
938         Synchronize the server while handling an XKB notification.
939         Ugly, but apparently necessary to avoid nasty races.
940         Check the mouse state on receipt of an XKB latch change,
941         to decide whether to revert the latch or not. (Latches are
942         reverted if there is an immediately preceding mouse button
943         event that a client has consumed, in which case we don't want
944         the user to see the side-effect of the event).
945         (spi_device_event_controller_forward_mouse_event):
946         Check for modifier events and fire before resetting mouse_mask_state,
947         prevents losing modifier events.
948
949         (impl_generate_keyboard_event):
950         If we've just generated a keyboard event for a non-shift key,
951         we don't want to revert the pending XKB latch. 
952         Otherwise, check the modifier state (via a call to 
953         spi_dev_mouse_check) and set the relatch mask to 
954         that state before returning.
955         
956 2002-11-24  Bill Haneman  <bill.haneman@sun.com>
957
958         * NEWS: 
959         Updated NEWS (accidentally didn't make it into 1.1.5 tarball,
960         retagged).
961         
962         * atk-bridge/bridge.c:
963         (spi_atk_register_event_listeners):
964         Don't re-register for ATK events if the registry has died
965         and the app needs to re-register; the ATK listeners are in
966         process and doing so will cause duplicate emission.
967
968         * registryd/deviceeventcontroller.c:
969         (spi_poll_mouse_moved):
970         Reformat the source, detect and emit multiple button-change
971         events (i.e. if multiple buttons have changed between poll
972         intervals).
973         Add code to detect mouse-down events even when the pointer
974         is grabbed; workaround for GOK bug 98420.
975         (spi_controller_register_with_devices):
976         Call XTestGrabControl with 'impervious' flag set to True,
977         allows us to synthesize events and query the pointer even during
978         an active grab by another client.
979         (spi_device_event_controller_forward_mouse_event):
980         Set the mouse_mask_state to the mouse_button_state from
981         the intercepted event, to synchronize the grab listener with
982         the poll state.
983         
984 2002-11-20  Bill Haneman  <bill.haneman@sun.com>
985
986         * cspi/spi_accessible.c:
987         (AccessibleRole_getName):
988         Added necessary strings for making this (deprecated) 
989         method work with the new role types. 
990         (init_role_table, role_table):
991         Added definition of SPI_ROLE_APPLICATION.
992
993         * libspi/spi-roletypes.h:
994         Added SPI_ROLE_APPLICATION.
995
996         * idl/Accessibility_Role.idl:
997         Added ROLE_APPLICATION. 
998
999         * docs/reference/cspi/at-spi-cspi-decl.txt:
1000         Added SPI_ROLE_APPLICATION to docs.
1001
1002 2002-11-20  Padraig O'Briain  <padraig.obriain@sun.com>
1003
1004         * cspi/spi_accessible.c
1005         (cspi_init_role_table): Do not write beyond end of role_table.
1006         (Accessible_getRole): Use correct type for value returned by
1007         Accessibility_Accessible_getRole().
1008
1009         * libspi/accessible.c (spi_init_role_lookup_table): Do not write
1010         beyond end of role_table. (This fixes bug #98269)
1011
1012         * libspi/application.c: Add include file spi-private.h for 
1013         definition of spi_init_any_nil.
1014
1015 2002-11-19 Bill Haneman <bill.haneman@sun.com>
1016
1017         FIX for bug 99024.
1018         
1019         * libspi/spi-private.h:
1020         Added DGB() macro, and extern int _dbg declaration.
1021         
1022         * registryd/registry.c:
1023         (definitions) storage for _dbg.
1024         (spi_registry_init):
1025         Get environment variable "AT_SPI_DEBUG".
1026         (spi_registry_set_debug):
1027         New method, to initialize _dbg value.
1028         (spi_listener_struct_new, spi_registry_object_finalize):
1029         (notify_listeners_cb):
1030         Changed fprintfs to use DBG and g_warning().
1031
1032         * registryd/deviceeventcontroller.c:
1033         (_deregister_keygrab, spi_controller_register_device_listener):
1034         Changed debug/warning messages to use DBG macro.
1035
1036         * libspi/listener.c:
1037         (impl_notify_event):
1038         Changed warning messages to use DBG macro and g_warning().
1039
1040         * atk-bridge/bridge.c:
1041         (atk_bridge_init, spi_atk_bridge_get_registry):
1042         (spi_atk_bridge_exit_func):
1043         (spi_atk_bridge_property_event_listener):
1044         Changed status, warning, and error messages to use
1045         g_warning, g_message, and DBG macros.
1046
1047         (atk_bridge_init):
1048         Read the state of the AT_SPI_DEBUG environment variable
1049         and set a local '_dbg' accordingly.
1050         
1051 2002-11-19 Bill Haneman <bill.haneman@sun.com>
1052
1053         FIXES for 98836, 98842, other bugs.
1054         
1055         * configure.in:
1056         Revved to 1.1.4, interface-age=4, binary-age=4.
1057
1058         * registryd/deviceeventcontroller.c:
1059         (statics):
1060         Fixed crasher bug in last_mouse_pos initialization.
1061
1062         * registryd/registry.c:
1063         (desktop_add_application, desktop_remove_application):
1064         Added (and then commented out) some support for
1065         object context marshalling. [TODO]
1066
1067         * atk-bridge/bridge.c:
1068         (spi_atk_bridge_event_context_create):
1069         Commented out object context creation until it can
1070         be properly tested and debugged.
1071
1072         * registryd/registry.c:
1073         (impl_registry_notify_event):
1074         Fixed crasher bug, we were calling 
1075         spi_re_entrant_list_foreach () with an empty list.
1076
1077 2002-11-18  Bill Haneman <bill.haneman@sun.com>
1078         
1079         * idl/Accessibility_Action.idl:
1080         * idl/Accessibility_Component.idl:
1081         * idl/Accessibility_Desktop.idl:
1082         * idl/Accessibility_Event.idl:
1083         * idl/Accessibility_Hyperlink.idl:
1084         * idl/Accessibility_Image.idl:
1085         * idl/Accessibility_Relation.idl:
1086         * idl/Accessibility_Selection.idl:
1087         * idl/Accessibility_State.idl:
1088         * idl/Accessibility_Value.idl:
1089         Updated unimplemented slot count to minimum of
1090         four for all interfaces, for ABI freeze. 
1091
1092         * idl/Accessibility_EditableText.idl:
1093         * idl/Accessibility_Text.idl:
1094         Updated unimplemented slot count to six
1095         for ABI freeze. 
1096         
1097         * idl/Accessibility_Registry.idl:
1098         Updated unimplemented slot count to six
1099         (also for DeviceEventController), 
1100         for ABI freeze. 
1101
1102         * idl/Accessibility_Table.idl:
1103         Updated unimplemented slot count to eight,
1104         for ABI freeze. 
1105
1106         * idl/Accessibility_Event.idl:
1107         Added CORBA_any "any_data" member to Event struct.
1108
1109         * idl/Accessibility_Event.idl:
1110         Added CORBA_any "any_data" member to Event struct.
1111
1112         * atk-bridge/bridge.c:
1113         (statics):
1114         atk_signal_text_changed, atk_signal_child_changed,
1115         signal ids queried from gtype system.
1116         (AtkBridgeEventContextType): New enum.
1117         (AtkBridgeEventContextData): New struct.
1118         (AtkBridgeEventContext): New struct.
1119         (atk_bridge_init_event_type_consts):
1120         New method, initializes type contants for comparison 
1121         prior to emit_eventv.
1122         (atk_bridge_event_context_init): New method,
1123         initializes a CORBA_any from an AtkBridgeEventContext.
1124         (atk_bridge_focus_tracker): Call spi_init_any_nil to
1125         initialize the event.any_data struct.
1126         (spi_atk_bridge_event_context_create): New method,
1127         creates an AtkBridgeEventContext from signal/event info.
1128         (spi_atk_bridge_event_context_free): New method.
1129         (spi_atk_emit_eventv): Changed to take an 
1130         AtkBridgeEventContext parameter. We now initialize
1131         the event.any_data member prior to notifying the 
1132         Registry, via the AtkBridgeEventContext.
1133         (spi_atk_bridge_property_event_listener):
1134         (spi_atk_bridge_state_event_listener):
1135         Match emit_eventv signature.
1136         (spi_atk_bridge_object_event_listener):
1137         Match emit_eventv signature, and create an
1138         event context from the event details.
1139         Free the event context afterwards.
1140         (spi_atk_bridge_window_event_listener):
1141         Create an event context, pass it to the
1142         emit_eventv call.
1143         
1144         * cspi/spi_event.c:
1145         (AccessibleEvent_getContextString):
1146         (AccessibleEvent_getContextObject):
1147         New methods, allow query of AccessibleEvent objects
1148         for more context details (via the "any_data" member 
1149         of the Event struct, above).
1150         
1151         * cspi/spi.h:
1152         Definitions for AccessibleEvent_getContextString
1153         and AccessibleEvent_getContextObject.
1154
1155         * cspi/spi_listener.h:
1156         (InternalEvent): New struct.
1157
1158         * cspi/spi_event.c:
1159         (AccessibleEvent_getContextString):
1160         (AccessibleEvent_getContextObject):
1161         Implementations of new methods, for obtaining
1162         additional context information from some event types.
1163
1164         * cspi/spi_registry.c:
1165         (SPI_registerGlobalEventListener):
1166         Added mention of active-descendant-changed event in docs.
1167
1168         * cspi/cspi-bonobo-listener.c:
1169         (cspi_event):
1170         Marshal the any into the AccessibleEvent via
1171         InternalEvent.
1172         
1173         * libspi/spi-private.h:
1174         #include <orbit/orbit.h>
1175         (spi_init_any_nil):
1176         (spi_init_any_string):
1177         (spi_init_any_object):
1178         New convenience function declarations.
1179
1180         * libspi/util.c:
1181         (spi_init_any_nil):
1182         (spi_init_any_string):
1183         (spi_init_any_object):
1184         New convenience function implementations.
1185
1186         * registryd/deviceeventcontroller.c:
1187         (spi_poll_dec_mouse_moved):
1188         (spi_device_event_controller_forward_mous_event):
1189         Initialize any_data member of event.
1190         (spi_deregister_controller_device_listener):
1191         Fix incorrect param pass which was preventing deregistration.
1192
1193         * registryd/registry.c:
1194         (desktop_add_application):
1195         (desktop_remove_application):
1196         Add object data to event's any_data before dispatch.
1197         (parse_event_type):
1198         Fix for error messages from GAIL.
1199         
1200         * test/event-listener-test.c:
1201         Test new ContextString and "any_data" API:
1202         (report_text_event): New method query and output context string.
1203         (main): register a new text listener with report_text_event
1204         callback.
1205
1206 2002-11-19  Darren Kenny  <darren.kenny@sun.com>
1207
1208         Fixes for bugs 98127 and 97914.
1209         * cspi/spi-roletypes.h:
1210         Added SPI_ROLE_HEADER, SPI_ROLE_FOOTER, SPI_ROLE_PARAGRAPH,
1211         SPI_ROLE_RULER
1212         * cspi/spi-statetypes.h:
1213         Added SPI_STATE_MANAGES_DESCENDANTS
1214         * cspi/spi.h:
1215         Added SPI_RELATION_FLOWS_TO, SPI_RELATIONS_FLOWS_FROM,
1216         SPI_RELATION_SUBWINDOW_OF, SPI_RELATION_EMBEDS, SPI_RELATION_EMBEDDED_BY
1217         * cspi/spi_accessible.c:
1218         Added mapping in role_table from new Accessibility_ROLE_* to SPI_ROLE_*
1219         Added mapping from SPI_STATE_MANAGES_DESCENDANTS to 
1220         Accessibility_STATE_MANAGES_DESCENDANTS
1221         * libspi/accessible.c:
1222         Added Mapping from ATK_ROLE_{FOOTER,HEADER,PARAGRAPH,RULER} to
1223         Accessibility_ROLE_{FOOTER,HEADER,PARAGRAPH,RULER} 
1224         As requested by Bill, I also cleaned up the alignment.
1225         * libspi/relation.c:
1226         Added mapping of the ATK_RELATION_{FLOWS_TO,FLOWS_FROM,SUBWINDOW_OF,
1227         EMBEDS,EMBEDDED_BY} to equivalend Accessibility_RELATION_*
1228         * libspi/stateset.c:
1229         Added mappings between ATK_STATE_MANAGES_DESCENDANTS and
1230         Accessibility_STATE_MANAGES_DESCENDANTS
1231         * docs/reference/cspi/tmpl/spi_accessible.sgml:
1232         Document changes reflecting modifications to roles.
1233         * docs/reference/cspi/tmpl/spi_relation.sgml:
1234         Document changes reflecting modifications to relations.
1235         * docs/reference/cspi/tmpl/spi_stateset.sgml:
1236         Document changes reflecting modifications to states.
1237
1238 2002-11-17  Bill Haneman <bill.haneman@sun.com>
1239
1240         * configure.in:
1241         Revved to 1.1.3, interface-age=3, binary-age=3.
1242         Added REBUILD macro.
1243
1244         * test/Makefile.am:
1245         Removed accessx-gui from the tests, since we have a nice
1246         keyboard accessibility capplet now :-)
1247
1248         * test/keysynth-demo.c:
1249         (increment_scan): removed do-nothing default: case,
1250         silences warning.
1251
1252         * test/visual-bell.c:
1253         (main) : removed do-nothing default: case, 
1254         silences warning.
1255
1256         * cspi/spi_action.c:
1257         (AccessibleAction_getKeyBinding_): 
1258         Documented keybinding string format.
1259         FIX for bug 97916.
1260
1261         * cspi/spi_text.c:
1262         (AccessibleText_getAttributes):
1263         Documented the text attribute string format.
1264         It's changed to use semicolon delimiters also,
1265         to prevent clashes with CSS attributes, but the old
1266         trick of looking for ", " strings will still work
1267         (as unreliably as ever).  Fix for bug related to 97916.
1268
1269         * cspi/spi_event.c:
1270         Include <cspi/bonobo/cspi-bonobo-listener.h>
1271         Fixes build warning.
1272         (SPI_freeAccessibleKeySet):
1273         (AccessibleKeystrokeListener_addCallback):
1274         (AccessibleKeystrokeListener_removeCallback):
1275         Modify to use AccessibleDeviceListener API internally,
1276         instead of AccessibleKeystrokeListener.
1277         
1278         * idl/Accessibility_Event.idl:
1279         Added two more empty slots to EventListener (for a total of four).
1280
1281         * idl/Accessibility_Accessible.idl:
1282         Added four empty slots to Accessible interface.
1283
1284 2002-11-15  Bill Haneman <bill.haneman@sun.com>
1285
1286         * idl/Accessibility_Registry.idl:
1287         (KeyEventType, EventType):
1288         Marked KeyEventType as deprecated; it duplicates
1289         functionality of EventType, which has been extended to
1290         include Mouse-button events.
1291         (KeyEventTypeSeq): defined in terms of EventType.
1292         (registerDeviceEventListener, deregisterDeviceEventListener):
1293         New methods, for managing listeners to device events,
1294         which potentially may consume them.     
1295         
1296         * cspi/spi-impl.h:
1297         Added definition for AccessibleDeviceListener.
1298
1299         * cspi/spi-listener.h:
1300         (enum AccessibleDeviceEventType):
1301         Added SPI_BUTTON_PRESSED and SPI_BUTTON_RELEASED.
1302         Typedef'd AccessibleKeyEventType to AccessibleDeviceEventType
1303         for backwards compat.
1304         (AccessibleKeystroke): Renamed AccessibleKeystroke to AccessibleDeviceEvent,
1305         and typedef'd AccessibleKeystroke to it for back-compat.
1306         (AccessibleDeviceListenerCB):
1307         New function prototype typedef.
1308
1309         * cspi/spi.h:
1310         (AccessibleDeviceEventMask): New typedef.
1311         (AccessibleModifierMaskType): New typedef (renamed from AccessibleKeyMaskType).
1312         (AccessibleKeyMaskType): 
1313         Set equivalent to AccessibleModifierMaskType for back-compat.   
1314         (SPI_createAccessibleKeystrokeListener):
1315         (AccessibleKeystrokeListener_unref):
1316         Deprecated in favor of equivalent (better-named) new API below..
1317         keystroke listeners are like all device listeners.
1318         (SPI_createAccessibleDeviceListener, AccessibleDeviceListener_unref)
1319         New API names for old features :-).
1320         (AccessibleDeviceListener_addCallback):
1321         (AccessibleDeviceListener_removeCallback): 
1322         (SPI_registerDeviceEventListener): 
1323         (SPI_deregisterDeviceEventListener): 
1324         New methods.
1325         
1326         * cspi/spi_event.c:
1327         (SPI_createAccessibleKeystrokeListener):
1328         Use new preferred API, cspi_device_listener_new() and
1329         cspi_device_listener_add_cb().
1330         (AccessibleKeystrokeListener_removeCallback):
1331         Use new preferred API, cspi_device_listener_remove_cb().
1332         (AccessibleKeystrokeListener_unref):
1333         Use new preferred API, cspi_device_listener_unref().
1334         (SPI_createAccessibleDeviceListener):
1335         (AccessibleDeviceListener_addCallback):
1336         (AccessibleDeviceListener_removeCallback):
1337         Implementation of new API.
1338
1339         * cspi/spi_registry.c:
1340         (SPI_registerDeviceEventListener):
1341         (SPI_deregisterDeviceEventListener):
1342         Implementation of new API.  Fixed memory leak and removed need to
1343         allocate EventTypeSeq (thanks Michael for catching this).
1344         Squashed a wayward CORBA_exception_free that shouldn't get called.
1345
1346         * cspi/bonobo/cspi-bonobo-listener.c:
1347         (EventHandler):
1348         Changed union (bin-and-api-compatibly) to refer to AccessibleDeviceListenerCB.
1349         (cspi_key_event): renamed to cspi_device_event().
1350         Internal use of CSpiKeystrokeListener changed to CSpiDeviceListener.
1351         Extended to handle mouse button events as well as key events.
1352         (CSpiKeystrokeListener):
1353         Class superceded by CSpiDeviceListener.
1354         (cspi_keystroke_listener_add_callback, cspi_keystroke_listener_get_corba):
1355         These internal APIs changed to "*device_listener" from "*keystroke_listener".
1356
1357         * cspi/bonobo/cspi-bonobo-listener.h:
1358         (CSpiKeystrokeListener):
1359         Class superceded by CSpiDeviceListener.
1360         (cspi_keystroke_listener_add_callback, cspi_keystroke_listener_get_corba):
1361         These internal APIs changed to "*device_listener" from "*keystroke_listener".
1362
1363         * libspi/Makefile.am:
1364         Replaced keystrokelistener.h and keystrokelistener.c
1365         with devicelistener.h and devicelistener.c; keystrokelisener.h
1366         stub retained for back-compat.
1367
1368         * libspi/keystrokelistener.c:
1369         Removed file.
1370
1371         * libspi/libspi.h:
1372         Replaced inclusion of keystrokelistener.h with devicelistener.h.        
1373
1374         * registryd/deviceeventcontroller.c:
1375         (DEControllerListener): Added Accessibility_EventTypeSeq member.
1376         (DEControllerKeyListener): Removed Accessibility_KeyEventTypeSeq member.
1377         (DEControllerPrivateData): Added xkb settings data.
1378         (spi_dec_poll_mouse_moved): Changed to dispatch device events for
1379         button release events (which can't be captured via XGrabButton).
1380         Don't dispatch via the 'normal' event mechanism if the device event was
1381         consumed.
1382         (spi_dec_key_listener_new, spi_key_listener_clone, spi_key_listener_data_free):
1383         Handle the typeseq data in its new location (see above).
1384         (spi_dec_listener_new, spi_listener_clone, spi_listener_clone_free):
1385         New methods, for "generic" device listeners.
1386         (spi_controller_register_device_listener):
1387         Now handle mouse event listeners as well as key listeners.
1388         (spi_controller_notify_mouselisteners):
1389         New internal method.
1390         (spi_device_event_controller_forward_mouse_event):
1391         Now we notify mouse device listeners as well as generating the
1392         non-consumable "mouse:" events.  
1393         (global_filter_fn):
1394         We must check and restore the XKB
1395         modifier map if we consume the event, since the act of triggering
1396         a mouse event will normally reset the XKB latch.  This is required for 
1397         instance by GOK.
1398         (spi_controller_register_with_devices):
1399         Load the XKB settings when registering, and register for XKB 
1400         state notify events. 
1401         (spi_key_eventtype_seq_contains_event):
1402         Renamed spi_eventtype_seq_contains_event, since it's used
1403         internally for all device event types now.
1404         (spi_key_event_matches_listener):
1405         Uses spi_eventtype_seq_contains_event now.
1406         (spi_device_event_controller_object_finalize):
1407         Free the private data and the XkbKeyboard struct.
1408         (impl_register_device_listener, impl_deregister_device_listener):
1409         Implementation of new IDL.
1410         (spi_deregister_controller_device_listener):
1411         New internal method.
1412         (dec_xkb_get_slowkeys_delay dec_xkb_get_bouncekeys_delay):
1413         More efficient implementation, we don't have to create a new
1414         XkbControls structure every time we query.
1415         (spi_device_event_controller_class_init):
1416         Initialize the epv entries for the new IDL.  Assign the 
1417         "spi-dec-private" quark.
1418         (spi_device_event_controller_init):
1419         Initialize the private data.
1420         (spi_device_event_controller_forward_key_event):
1421         Removed a bogus CORBA_exception_free() call.
1422         
1423         * registryd/deviceeventcontroller.h:
1424         Replaced inclusion of keystrokelistener.h with
1425         devicelistener.h.
1426
1427         * test/event-listener-test.c:
1428         (report_mouse_event):
1429         New method.
1430         (main):
1431         Added mouse-event device listener.
1432
1433         * test/test-simple.c:
1434         (create_test_window):
1435         Fixed regression (we were instantiating a GtkRange,
1436         which is now an abstract class).  Also fixed to match
1437         existing AtkRole names, this seems to have changed in ATK
1438         awhile ago; too late now I think, and the new
1439         mechanism is at least elegant and consistent with the
1440         glib enum "nick" APIs.  
1441
1442 2002-11-15  Darren Kenny  <darren.kenny@sun.com>
1443
1444         * idl/Accessibility_Relation.idl:
1445         add RELATION_FLOWS_TO,RELATION_FLOWS_FROM,RELATION_SUBWINDOW_OF,
1446         RELATION_EMBEDS,RELATION_EMBEDDED_BY
1447         * idl/Accessibility_Role.idl:
1448         add ROLE_HEADER, ROLE_FOOTER, ROLE_PARAGRAPH, ROLE_RULER
1449         * idl/Accessibility_State.idl:
1450         add STATE_MANAGES_DESCENDANTS
1451         * test/event-listener-test.c:
1452         Added a listener for active-descendant events.
1453
1454 2002-11-15  Padraig O'Briain  <padraig.obriain@sun.com>
1455
1456         * atk-bridge/bridge.c
1457         (atk_bridge_init): If application is Bonobo component wait until top
1458         level is added before registering
1459         (spi_atk_bridge_do_registration): New function which contains code, 
1460         formerly in atk_bridge_init, to do application registration.
1461         (spi_atk_bridge_toplevel_added): Signal called when top level
1462         added to Bonobo component
1463
1464         This fixes bug #83134.
1465
1466 2002-10-23  Vitaly Tishkov  <tvv@sparc.spb.su>
1467
1468         * registryd/deviceeventcontroller.c
1469         Fixed compilation error caused by calling gettimeofday() 
1470         with 1 parameter
1471
1472 2002-10-18  Bill Haneman  <bill.haneman@sun.com>
1473
1474         BUGFIX for #95828.
1475
1476         * acconfig.h:
1477         Added template for HAVE_XKB.
1478         
1479         * configure.in:
1480         Changes to check for XKB, and to set the HAVE_XKB #define if it 
1481         is available.
1482         
1483         * libspi/listener.c:
1484         ()impl_notify_event): Make failure to get event source name
1485         nonfatal.
1486
1487         * registryd/deviceeventcontroller.c:
1488         (#include): include X11/XKBlib.h.
1489         (DEControllerPrivateData) : New struct.
1490         (dec_xkb_get_slowkeys_delay) (dec_xkb_get_boucekeys_delay) : 
1491         New methods.
1492         (dec_synth_keycode_press) (dec_synth_keycode_release):
1493         New methods; split the key synthesis code into these methods.
1494         They check XKB settings before determining the "time" values to
1495         pass to Xtest; this fixes bug #95828.
1496         (impl_generate_keyboard_event): Changed to use methods above,
1497         instead of callng Xtest directly.
1498         (spi_device_event_controller_init): Initialize new privae struct s
1499         above.
1500         (spi_device_event_controllr_object_finalize):
1501         Free the (new) private data.
1502
1503         * registryd/deviceeventcontroller.h:
1504         Add new gpointer to end of struct data.
1505
1506 2002-10-16  Bill Haneman  <bill.haneman@sun.com>
1507
1508         * configure.in:
1509         Incremented revision to 1.1.2, SONAME is still '.so', library
1510         extensions are ".so.0.0.2".
1511
1512         * registryd/deviceeventcontroller.c:
1513         FIXES FOR #93592 and #95940.
1514         (statics):  renamed mouse_button_state to mouse_mask_state, 
1515         added key_modifier_mask.
1516         (spi_dec_poll_mouse_moved): 
1517         Added key modifier checks, and emit "keyboard:modifiers"
1518         events when the key modifiers currently in use change.
1519         Also generate "mouse:abs" events periodically, even if the mouse
1520         is stationary (should we?).
1521         Alternatively we could generate "mouse:abs" events for either all
1522         mouse movements, or every 'nth' mouse movement, or at the
1523         beginning and end of every "active" mouse period.
1524         
1525         * test/event-listener-test.c:
1526         (main): Added listener for "keyboard:modifiers" events.
1527         
1528 2002-10-15  Bill Haneman  <bill.haneman@sun.com>
1529
1530         * libspi/keymasks.h:
1531         Added key mask #defines for mouse buttons; e.g.
1532         SPI_KEYMASK_BUTTON1, etc.
1533
1534         * configure.in:
1535         Incremented dependency on ATK to version 1.1.0. (This dependency
1536         is probably premature but will soon be real enough).
1537
1538 2002-10-11  Padraig O'Briain  <padraig.obriain@sun.com>
1539
1540         * libspi/hyperlink.[ch]
1541         (spi_hyperlink_new): Change parameter from AtkObject to AtkHyperlink.
1542         (get_hyperlink_from_servant): Check object is AtkHyperlink not 
1543         AtkObject.
1544
1545         * libspi/hypertext.c (impl_getLink): Remove cast of AtkHyperlink to
1546         AtkObject.
1547
1548         Fixes bug #95517.
1549
1550 2002-10-10  Padraig O'Briain  <padraig.obriain@sun.com>
1551
1552         * registryd/deviceeventcontroller.c
1553         (global_filter_fn): Correct typo which caused KeyPress and KeyRelease
1554         events to be ignored.
1555         (spi_controller_update_key_grabs): Use GrabModeSync for pointer_mode
1556         keyboard_mode so that XAllowEvents() can be called.
1557
1558         Fixes bug #93658.
1559
1560 2002-10-08  Padraig O'Briain  <padraig.obriain@sun.com>
1561
1562         * cspi/spi-accessible.c: Correct names of roles returned by
1563         AccessibleRole_getName(). Fixes bug #95055.
1564
1565 2002-10-03  Padraig O'Briain  <padraig.obriain@sun.com>
1566
1567         * cspi/spi_main.c (report_leaked_ref): Report address of leaked
1568         object.
1569
1570         * registryd/registry.c
1571         (desktop_remove_application: Write diagnostic message to stderr for
1572         consistency.
1573
1574         (impl_accessibility_registry_deregister_global_event_listener):
1575         Correct size of lists array. This addresses bug #94555).
1576
1577 2002-09-24  Padraig O'Briain  <padraig.obriain@sun.com>
1578
1579         * libspi/accessible.c (spi_init_role_lookup_table): Correct typos
1580         in some role names.
1581
1582 2002-09-19  Padraig O'Briain  <padraig.obriain@sun.com>
1583
1584         * registryd/Makefile: Add CLEANFILES so that .server file is removed
1585         on make clean
1586
1587         * registryd/registry.c (impl_registry_notify_event): Remove
1588         unnecessary call to parser_event_type().
1589
1590         * docs/reference/cspi/tmpl/spi_component.sgml:
1591         Add reference to SPI_LAYER_WINDOW.
1592
1593 2002-09-17  Padraig O'Briain  <padraig.obriain@sun.com>
1594
1595         * registryd/registry.c
1596         (desktop_add_application): Remove leak.
1597         (desktop_remove_application): Remove leak.
1598         (parser_event_type): Remove leak.
1599
1600 2002-09-16  Padraig O'Briain  <padraig.obriain@sun.com>
1601
1602         * registryd/deviceeventcontroller.c (spi_dec_mouse_moved): Removed
1603         bogus call to CORBA_string_dup(). Also removed unnecessary
1604         g_string_dup/g_free calls.
1605         
1606 2002-09-13  Bill Haneman <bill.haneman@sun.com>
1607
1608         * registryd/deviceeventcontroller.c:
1609         spi_dec_mouse_moved: Fixed memory leaks and reordered 2 code blocks.
1610
1611         * test/event-listener-test.c:
1612         main: commented out three redundant listeners, to reduce output
1613         noise. (They still are potentially useful for testing).
1614         
1615
1616 2002-09-13  Michael Meeks  <michael@ximian.com>
1617
1618         * Update all the copyrights to include Ximian.
1619
1620 2002-09-06  Mark McLoughlin  <mark@skynet.ie>
1621
1622         * cspi/spi.h: add SPI_LAYER_WINDOW.
1623
1624         * cspi/spi_component.c: (AccessibleComponent_getLayer):
1625         add Accessibility_LAYER_WINDOW case.
1626
1627         * idl/Accessibility_Component.idl: add LAYER_WINDOW.
1628
1629         * libspi/component.c: (impl_accessibility_component_get_layer):
1630         add ATK_LAYER_WINDOW case.
1631
1632 2002-08-28  Bill Haneman <bill.haneman@sun.com>
1633
1634         * configure.in: incremented micro version.
1635
1636         * branched for gnome-2-0 (a gnome-2-0-0 branch already exists).
1637
1638 2002-08-20  Bill Haneman <bill.haneman@sun.com>
1639
1640         * HACKING: 
1641         Clarified and reworded our commit policy.
1642
1643         * NEWS:
1644         Started an API "todo" addition list for 2.2.
1645
1646         * libspi/text.c:
1647         (impl_getSelection):
1648         Free char pointer from atk_text_get_selection, which was being leaked.
1649
1650 2002-08-19  Bill Haneman <bill.haneman@sun.com>
1651
1652         * AUTHORS: 
1653         Small revision to author acknowledgement.
1654
1655 2002-08-19  Padraig O'Briain  <padraig.obriain@sun.com>
1656
1657         * atk-bridge/bridge.c (spi_atk_bridge_signal_listener):
1658         If signal has detail add it to the type of the event.
1659         (bug #90838)
1660         
1661 2002-08-12  Michael Meeks  <michael@ximian.com>
1662
1663         * test/test-simple.c (global_listener_cb): bin bogosity.
1664         (test_keylisteners): disable, still doesn't work reliably,
1665         certainly not on my system anyway.
1666
1667         * atk-bridge/bridge.c (spi_atk_bridge_key_listener):
1668         don't leak a reference on the DEC. This round-trip
1669         fetching of the DEC per keystroke sucks, it should be
1670         cached.
1671
1672         * cspi/spi-private.h,
1673         * cspi/cspi-lowlevel.h,
1674         * cspi/bonobo/cspi-bonobo-listener.[ch],
1675         * cspi/bonobo/cspi-bonobo.c: get the copyright
1676         notices better - there is still a large amount of
1677         work in at-spi falsely attributed solely to Sun.
1678
1679         * cspi/spi_main.c (cspi_object_ref): kill bogus
1680         hash lookup, just increment the ref.
1681         (SPI_freeString): make explicit the fact that we
1682         handle NULL strings just fine.
1683         (report_leaked_ref): obey coding standards.
1684         (cspi_object_hash, cspi_object_equal): kill retval.
1685         (cspi_object_release): only release if not on loan.
1686         (cspi_object_get_ref): add 'loan' concept, bin 'do_ref'.
1687         (cspi_object_borrow, cspi_object_return): impl.
1688
1689         * cspi/bonobo/cspi-bonobo-listener.c (cspi_event):
1690         use cspi_object_borrow / return.
1691
1692 2002-08-12  Darren Kenny  <darren.kenny@sun.com>
1693
1694         * cspi/bonobo/cspi-bonobo-listener.c: 
1695         (cspi_event):
1696         Don't call cspi_oject_new() because this is creating a new Accessible
1697         every single time that an event is fired. This causes ATs like at-poke
1698         to nolonger recognise the source of the event and thus ignore it.
1699         Re-use the object from the cache, ref it and then unref it after the
1700         listeners have been called.
1701
1702 2002-08-06  Darren Kenny  <darren.kenny@sun.com>
1703
1704         * test/event-listener-test.c: 
1705         Added command-line options to disable mouse events (m) and
1706         show usage (h). 
1707
1708 2002-07-31  Padraig O'Briain  <padraig.obriain@sun.com>
1709
1710         * configure.in: Update required versions of ATK, GTK+ and GAIL
1711
1712         * cspi-1.0.pc.in: Add dependency for X include files
1713
1714         * cspi/Makefile.am:
1715         * cspi/bonobo/Makefile.am: 
1716         Add $(X_CFLAGS) so that X include files 
1717         are picked up even if not in standard place (bug #71686)
1718
1719 2002-06-25  Bill Haneman  <bill.haneman@sun.com>
1720
1721         * registryd/deviceeventcontroller.c: fix for 84261
1722         (spi_dec_mouse_moved):
1723         Added test of mouse button mask, so that we can detect mouse
1724         button release.  Unfortunately we can't otherwise detect mouse
1725         button release events without consuming the mouse press event,
1726         because of the way XGrabButton works.  This means that our mouse
1727         release events have a latency dependent on the polling period
1728         while the mouse button is down.  At least in this case we only
1729         have to poll while the button is down, and not at other times.
1730         If the button masks don't match with what the last press event
1731         reported, we report the appropriate button release event.
1732         (spi_dec_ungrab_mouse):
1733         New method (not yet called).
1734         (spi_device_event_controller_forward_mouse_event):
1735         New method, sends mouse press event from GdkFilter.
1736         (spi_dec_init_mouse_listener):
1737         Added code to call XGrabButton, redirecting mouse button events to
1738         the root window and our Gdk event loop.
1739         (global_filter_fn):
1740         Added code to filter mouse button events, and reordered.
1741         
1742         * test/event-listener-test.c:
1743         (main):
1744         Added registration for mouse events of type "mouse:button".
1745
1746 2002-06-25  Bill Haneman  <bill.haneman@sun.com>
1747
1748         * registryd/deviceeventcontroller.c: partial fix for 84261
1749         (spi_dec_poll_mouse_idle):
1750         New method, a timeout which checks to see if the mouse
1751         has moved.
1752         (spi_dec_poll_mouse_moving):
1753         A timeout to be called when mouse motion is underway.
1754         (spi_dec_poll_mouse_moved):
1755         A method which fires an event if the mouse has moved, and reports
1756         whether or not it did so. 
1757         (spi_dec_init_mouse_listener):
1758         A method which sets up the timeouts above.
1759         (spi_device_event_controller_new):
1760         Now calls spi_dec_init_mouse_listener.
1761
1762         * registryd/registry.c:
1763         (spi_registry_init):
1764         Now we initialize the device event controller when the registry is
1765         initialized, instead of waiting until a client has requested a key
1766         event notification; this is because we need the event controller
1767         for mouse events, but the mouse event registration API is a
1768         "registry" call and doesn't explicitly call the 
1769         deviceeventcontroller.
1770         We now report mouse motion events with a 100 ms idle latency and
1771         a 20 ms granularity when motion is in progress.
1772
1773         * test/event-listener-test.c:
1774         (main):
1775         We now register the "detail listener" for events of type 
1776         "mouse:rel" and "mouse:abs" (Note, mouse-abs events generally are
1777         delivered only for the first mouse event received, and thereafter
1778         "mouse:abs" events are delivered.)
1779
1780         * cspi/spi_registry.c:
1781         DOCS: Documented the above mouse event typestrings.
1782         
1783 2002-06-21  Bill Haneman  <bill.haneman@sun.com>
1784
1785         Happy Summer Solstice...
1786
1787         * registryd/deviceeventcontroller.c: [fix for bug 84100]
1788         (spi_controller_notify_keylisteners):
1789         Changes to remove a listener from the listener list, freeing its
1790         open keygrabs, if a notification to that listener fails.  This
1791         means that although a dead listener can continue to hold a passive
1792         keygrab, a maximum of one dispatch to such a listener can fail
1793         before the listener is removed from the list, thus the keygrab
1794         will be released on the next occurrence.
1795         As part of this fix:
1796         (spi_notify_keylisteners):
1797         Renamed to spi_controller_notify_keylisteners, as the controller
1798         instance must now be passed as an argument.
1799         The copied 'notify' GList is now a list of DEControllerKeyListener
1800         objects, since we need more than just the CORBA reference if a
1801         notify fails and we need to deregister the listener.
1802         (impl_notify_listeners_sync):
1803         (impl_notify_listeners_async):
1804         (spi_device_event_controller_forward_key_event):
1805         Modify use of notify_keylisteners in accordance with above
1806         changes.
1807         (spi_deregister_controller_key_listener):
1808         New method introduced by refactoring, from 
1809         impl_deregister_keystroke_listener.
1810         (impl_deregister_keystroke_listener):
1811         Call spi_deregister_controller_key_listener.
1812         (spi_key_listener_clone):
1813         New method to copy a key listner without doing a 'ref' on the
1814         remote object instance; used to create a notifier list.
1815         (spi_key_listener_data_free):
1816         New method, frees data without unreffing the source.
1817         Used in refactor.
1818         (spi_key_listener_clone_free): new method.
1819         (spi_key_listener_free): 
1820         refactored to call spi_key_listener_data_free.
1821         
1822 2002-06-20  Bill Haneman  <bill.haneman@sun.com>
1823
1824         * registryd/registry.c: [fix for bug 86048]
1825         (notify_listeners_cb):
1826         Clear CORBA system exceptions which occur when notifying
1827         listeners, before returning to the source of the original event,
1828         since the event source doesn't care if the relayed notify failed.
1829         In other words, don't complain to the atk-bridge if the registry
1830         could not notify all its listeners, that's no fault of the
1831         application and thus should not appear to be an error from the
1832         application's perspective.
1833         
1834         * cspi/spi_main.c: [fix for bug 85980]
1835         (cspi_object_ref):
1836         Replaced use of bonobo_object_dup_ref with call to the wrapper
1837         method, csou_dup_ref (); this silences a compiler warning and
1838         provided more portability.
1839         (cspi_registry):
1840         Ping the registry before return, and restart if necessary.
1841
1842         * cspi/bonobo/cspi-bonobo.c:
1843         (cspi_ping):
1844         New internal method.
1845         (cspi_dup_ref):
1846         Fixed this method to return an object reference, as it should have
1847         all along.
1848
1849         * cspi/cspi-lowlevel.h:
1850         Added internal definition for cspi_ping() and fixed 
1851         return type of cspi_dup_ref().
1852         
1853
1854 2002-06-19  Bill Haneman  <bill.haneman@sun.com>
1855
1856         * atk-bridge/bridge.c:  [fix for bug 85305]
1857         (spi_atk_bridge_register_application):
1858         New method where the initial application registry calls have been
1859         moved; it allows an application to re-register in response to
1860         certain error conditions (such as a registry restart, see below).
1861         (atk_bridge_init):
1862         Moved some initialization code to the method
1863         spi_atk_bridge_get_registry, below.
1864         (spi_atk_bridge_get_registry):
1865         New, private accessor function for the Accessibility_Registry
1866         instance.  If the registry has not been started before, or has
1867         died (as detected by failure of a CORBA exception), it is
1868         restarted before return, and spi_atk_bridge_register_application
1869         is called again to register with the new bridge instance.
1870         (spi_atk_emit_eventv):
1871         Set registry_died on error; use spi_atk_bridge_get_registry () to
1872         access the registry.
1873         
1874         * registryd/registry.c:
1875         (impl_accessibility_registry_register_global_event_listener):
1876         Set listener's event_type_quark to etype.minor instead of
1877         etype.major (fix for bug 84856).
1878
1879         * test/event-listener-test.c:
1880         (report_detail_event):
1881         Change the output string so that user/tester can tell that the
1882         'detail listener' was called instead of the 'generic listener'.
1883         
1884 2002-06-18  Bill Haneman  <bill.haneman@sun.com>
1885
1886         Fixes for bugs 84900, 84908, 84897, 84898.
1887
1888         * NEWS: updated.
1889         
1890         * configure.in:
1891         Revved version to 1.1.0 
1892         (reserving the 1.0.X branch for gnome-2-0-0 branch, this
1893         version is going to HEAD which will be used for gnome-2-0-1 and later.)
1894         
1895         * idl/Accessibility_Registry.idl:
1896         (EventListener::notifyEvent):
1897         Removed 'oneway' directive after extensive consulation with
1898         ORBit2 team and others.  This means also that unref() of the event
1899         source can and should be done synchronously after emission, rather
1900         than remotely in the client, after servicing the notify call on
1901         the listener side.
1902
1903         NOTE: This change speeds up listener performance considerably, but
1904         introduces new latency on the application side.  We may want to
1905         add an event queue to the atk-bridge.
1906
1907         * atk-bridge/bridge.c:
1908         (spi_atk_bridge_focus_tracker):
1909         Do a local unref() on the event source after emission.
1910         
1911         * registryd/registry.c:
1912         (desktop_remove_application):
1913         Do an unref() on the event source after emission.
1914         (desktop_add_application):
1915         Do an unref() on the event source after emission.
1916         (notify_listeners_cb):
1917         When relaying an event, don't automatically add the event source
1918         to the local object cache, just CORBA_dup it instead.  Likewise,
1919         if this method reenters, release the ref rather than calling
1920         unref() as well.
1921         (impl_registry_notify_event):
1922         No longer call remote unref() on the event source after dispatch.
1923
1924         * libspi/eventlistener.c:
1925         (impl_accessible_event_notify_event):
1926         Removed remote unref ()
1927         
1928         * cspi/bonobo/cspi-bonobo-listener.c:
1929         (cspi_event):
1930         We now call cspi_object_new() instead of cspi_object_add() on
1931         receipt of an event; thus we only have an implicit object ref
1932         while the cspi_event method is being executed.  If we need to keep
1933         a reference to the object, the listener must call ref() on the
1934         object.  Thus also we don't need to call cspi_object_unref() after
1935         invoking the listener callbacks in this method.
1936         
1937         * cspi/spi_main.c:
1938         (cspi_object_new):
1939         New internal API for creating a new cspi object, without adding it
1940         to the object cache.
1941         (cspi_object_add):
1942         Now uses cspi_object_new() to create the cspi object instance.
1943         (cspi_object_ref):
1944         Now checks to see if the object is in the internal object cache,
1945         and adds it if necessary before incrementing its refcount (note
1946         that new objects are added with a refcount of 1).
1947         (report_leaked_ref):
1948         New method which gives some information on leaked object instances
1949         if leak detection is turned on.
1950
1951         * test/event-listener-test.c:
1952         (timing_test_event):
1953         New method, used for testing event delivery timing for special
1954         events of type "object:test".  It reports elapsed time and
1955         events/sec every 500 events.
1956         (main):
1957         Added a new listener, 'test listener', to check timing of event
1958         receipt as noted above.
1959         (report_event):
1960         Added some timing output here also, reports elapsed time every 100
1961         events.
1962
1963         * test/stress-test.c:
1964         Emit events of type "object:test", for use with "event-listener-test".
1965
1966         * test/test-simple.c:
1967         (global_listener_cb):
1968         Call Accessible_ref() on the event source before calling
1969         validate_accessible, since the validation process does pointer
1970         comparisons on the event source, meaning that the event source
1971         needs to be added to the local object cache first.  Any use of
1972         such pointer comparisons between Accessible objects requires that
1973         the caller hold an explicit reference to those objects.
1974         We also must therefore call Accessible_unref() when leaving this method.
1975
1976 2002-06-13  Bill Haneman  <bill.haneman@sun.com>
1977
1978         * registryd/deviceeventcontroller.c:
1979         (spi_controller_update_key_grabs):
1980         Fix for #84735, subsequent keygrab listeners not informed of
1981         registration failure.
1982
1983         * libspi/base.c:
1984         (spi_base_construct):
1985         Add an assertion on construct, to make sure the GObject passed in
1986         is really a GObject.
1987         (spi_base_init):
1988         Explicitly initialize object->gobj pointer to NULL;
1989
1990         * cspi/bonobo/cspi-bonobo-listener.c:
1991         (cspi_object_add_ref):
1992         New method, can specify whether to dup-ref a bonobo object passed
1993         in if it's newly added to the object cache.
1994         (cspi_object_add):
1995         Now calls cspi_object_add_ref with second param of "FALSE".  This
1996         prevents us from doing a pointless dup-ref followed by
1997         release-unref for all those cases where the object is already in
1998         our object cache (fix for #85205).
1999
2000         * atk-bridge/bridge.c:
2001         (spi_atk_bridge_idle_init):
2002         Removed this method, we don't need to initialize in an idle
2003         handler anymore;
2004         (atk_bridge_init):
2005         Changed to call spi_atk_register_event_listeners directly, not via an
2006         idle handler. (fix for #81139)
2007         (gnome_accessibility_module_shutdown):
2008         Removed conditional around deregistration of listeners, since we
2009         don't use the idle handler and thus have always registered when
2010         shutdown is called.
2011         (spi_init_keystroke_from_atk_key_event):
2012         Changed references to Accessibility_KEY_PRESSED to 
2013         Accessibility_KEY_PRESSED_EVENT, etc. (fix for #79865).
2014         
2015 2002-06-12  Bill Haneman  <bill.haneman@sun.com>
2016
2017         (TAGGED AND BRANCHED for gnome-2-0-0 after this commit)
2018         
2019         * configure.in:
2020         Revved to 1.0.1
2021
2022         * test/stress-test.c:
2023         Added file.
2024
2025         (may have been an incomplete commit yesterday?)
2026
2027 2002-06-12  Bill Haneman  <bill.haneman@sun.com>
2028
2029         * test/Makefile.am:
2030         Added target for new stress-test.
2031         
2032         * test/stress-test.c:
2033         New test, sends 1000 focus notifies in quick succession.
2034
2035         * test/key-listener-test.c:
2036         Now we report whether a keylistener registration
2037         request succeeded or failed.
2038
2039         * test/event-listener-test.c:
2040         Uncommented some listeners which are now implemented.
2041
2042
2043 2002-06-06  Bill Haneman  <bill.haneman@sun.com>
2044
2045         * registryd/deviceeventcontroller.c:
2046         (spi_controller_update_key_grabs):
2047         Fix for #82509, lack of failure notification when
2048         ALL_WINDOWS keygrabs fail due to XGrabKey
2049         failure: we synchronize the server when 
2050         registering a passive grab, to make sure we get the
2051         error message before the call returns.
2052
2053 2002-06-03  Bill Haneman  <bill.haneman@sun.com>
2054
2055         * test/test-simple.c:
2056         (key_listener_cb):
2057         Removed #ifdef KEY_IMPL_WORKS guards.
2058         (test_keylisteners):
2059         Removed #ifdef KEY_IMPL_WORKS guards.
2060         Fixed bug which was causing a hang waiting for a 
2061         "press" event (which was already overwritten by a "release" 
2062         event) from SPI_generateKeyboardEvent with synth-type of SPI_KEY_SYM.
2063         (key_listener_cb):
2064         Added code to set globals 'key_press_received' and
2065         'key_release_received'.
2066
2067         * TODO:
2068         Added section "1.1 API Proposed Additions" which
2069         lists API additions desired for at-spi-1.1 (only one so far).
2070         Updated TODO list a little.
2071         
2072 2002-06-02  Bill Haneman  <bill.haneman@sun.com>
2073
2074         AT-SPI 1.0 API FINAL: at-spi 1.0 is now
2075         API frozen.
2076         
2077         * configure.in: Revved to 1.0.0.
2078
2079         * idl/Accessibility_Registry.idl:
2080         (registerKeystrokeListener):
2081         Added boolean return value.
2082         
2083         * registryd/registry.c:
2084         (notify_listeners_cb): Minor fix to debug output.
2085
2086         * registryd/Accessibility_Registry.server.in.in:
2087         Revved version number in OAFIID to 1.0.
2088
2089         * registryd/registryd.c:
2090         (main):
2091         Use new OAFIID version.
2092
2093         * cspi/bonobo/cspi-bonobo.c:
2094         (cspi_init):
2095         Use new OAFIID version.
2096
2097         * test/at.c:
2098         (main):
2099         * test/app.c:
2100         (main):
2101         * atk-bridge/bridge.c:
2102         (atk_bridge_init):
2103         Use new OAFIID version.
2104
2105         * registryd/deviceeventcontroller.c:
2106         (impl_register_keystroke_listener):
2107         Added CORBA_boolean return value.
2108         (spi_controller_register_device_listener):
2109         Added gboolean return value.
2110         (spi_controller_register_global_keygrabs):
2111         Added gboolean return value.
2112         (spi_key_set_contains_key):
2113         Added implementation for many more control keys,
2114         for instance F1-F12, arrow keys, End, Home, Page_Up,
2115         Page_Down, Escape.
2116         [TODO: some still not implemented]. 
2117         
2118         * text/screen-review-test.c:
2119         (text_chunk_pad_string):
2120         New function: it provides mapping between coordinate
2121         positions of text chunks and character positions in the
2122         screen-review-line output string.
2123         (text_chunk_to_string):
2124         New function, calls text_chunk_pad_string with various
2125         pad/delimiter characters. Pushbuttons are delimited with
2126         square brackets, Frames with vertical 'pipe' lines, and 
2127         other text with double quotes.
2128         (text_chunk_list_to_string):
2129         Calls new function text_chunk_to_string.
2130         (toplevel_composite):
2131         New function to composite layers CANVAS through
2132         POPUP in each toplevel (other layers are composited
2133         across toplevels, i.e. BACKGROUND and OVERLAY).
2134         (review_buffer_composite):
2135         Revise to use new methods.
2136         
2137         
2138         
2139         
2140
2141 2002-05-31  Laszlo Peter  <laca@sun.com>
2142
2143         * configure.in: add the Xtst libdir to the runpath on Solaris,
2144         since it's not in the default library search path.
2145
2146 2002-05-29  jacob berkman  <jacob@ximian.com>
2147
2148         * registryd/Makefile.am (EXTRA_DIST): dist the .in.in
2149
2150 2002-05-29  Bill Haneman  <bill.haneman@sun.com>
2151
2152         * test/screen-review-test.c:
2153         (text_chunk_pad_string):
2154         Added method, which pads the string according to the 
2155         text bounds of the chunk.  It also takes a 3-character
2156         string as a param which indicates the characters to be 
2157         used for start, padding, and end delimitation of the chunk.
2158         (text_chunk_to_string):
2159         Changed to use text_chunk_pad_string.
2160         
2161         * configure.in: Fixed bug in AC_OUTPUT that was
2162         causing path substitution in Accessibility_Registry.server
2163         to fail.
2164
2165 2002-05-23  Bill Haneman  <bill.haneman@sun.com>
2166
2167         * text/screen-review-test.c:
2168         (guess_string_clip):
2169         New method which attempts a best-guess at clipping
2170         text from components (like Java labels) which don't
2171         actually implement AccessibleText.  This inaccurate
2172         clip is based on the assumption that the label is
2173         justified left-and-right, and monospaced.
2174         (text_chunk_get_clipped_string):
2175         We now call guess_string_clip() for text-containing
2176         components that don't implement AccessibleText.
2177
2178         * test/screen-review-test.c:
2179         (review_buffer_get_text_chunk):
2180         We now pull "name" from labels if they do not implement
2181         AccessibleText (i.e. for Java labels).
2182         (get_screen_review_line_at):
2183         Added #ifdef guards CHUNK_LIST_DEBUG for diagnostics.
2184
2185         * configure.in:
2186         Replaceded AC_OUTPUT target
2187         registryd/Accessibility_Registry.server with 
2188         registryd/Accessibility_Registry.server.in.
2189
2190         * registryd/Accessibility_Registry.server.in:
2191         Removed (this is now a Makefile target).
2192
2193         * registryd/Accessibility_Registry.server.in.in:
2194         Added (source for target above).  We now use $(libexecdir) as
2195         prefix for the executable at-spi-registryd.
2196
2197         * registry/Makefile.am: 
2198         Now install at-spi-registryd into $(libexecdir), and build .server
2199         file with path (see above).
2200         
2201 2002-05-22  Bill Haneman  <bill.haneman@sun.com>
2202
2203         * test/screen-review-test.c:
2204         (text_chunk_get_clipped_string):        
2205         We now check to see if words fall within clip bounds 
2206         before resorting to character-by-character clip bounds testing.
2207
2208         * TODO: Added a section for "2.2 Proposed API Additions".
2209
2210 2002-05-21  Bill Haneman  <bill.haneman@sun.com>
2211
2212         * test/screen-review-test.c:
2213         * test/Makefile.am:
2214         Added a screen review benchmarking and test program to test
2215         directory.
2216
2217         * cspi/spi_accessible.c:
2218         * cspi/spi_main.c:
2219         Made some of the debug strings passed to cspi_check_ev a
2220         little more specific.
2221
2222 2002-05-21  Padraig O'Briain  <padraig.obriain@sun.com>
2223
2224         * test/screen-review-test.c: Fix crashes in debug statements
2225
2226 2002-05-20  Bill Haneman  <bill.haneman@sun.com>
2227
2228         * test/screen-review-test.c: Added this file.
2229
2230 2002-05-13  Marc Mulcahy <marc.mulcahy@sun.com>
2231
2232         * atk-bridge/bridge.c: changed "object:state-change" to
2233         "object:state-changed" to match docs.
2234
2235 2002-05-13  Marc Mulcahy <marc.mulcahy@sun.com>
2236
2237         * atk-bridge/bridge.c: Hooked up state-change event details.
2238
2239 2002-05-11  Bill Haneman <bill.haneman@sun.com>
2240
2241         * registryd/registry.c:
2242         Fixed quarking bug in event string parsing; now events with
2243         detail parameters get matched correctly to listeners.
2244         [Bugzilla 80608].
2245
2246         * util/idl/Magnifier.idl: remove.
2247         * util/idl: remove
2248         * util/*.[ch]: Remove.
2249         Magnification utilities and IDL are now in module gnome-mag.
2250
2251 2002-05-10  Bill Haneman <bill.haneman@sun.com>
2252
2253         * registryd/deviceeventcontroller.c:
2254         Fixed bug in grab key conversion which was causing keycode grabs
2255         to be converted to AnyKey grabs.
2256
2257         * NEWS:
2258         updated NEWS file to reflect recent spin-off of gnome-mag.
2259
2260 2002-05-09  Marc Mulcahy <marc.mulcahy@sun.com>
2261
2262         * cspi/spi_accessible.c: Added exception checks.  Fixed completely
2263         busted AccessibleStateSet_compare.  Removed redundant casts.
2264         
2265         * cspi/spi-action.c: Removed redundant casts.
2266
2267         * cspi/spi_application.c: Fixed typo in AccessibleApplication_getVersion.
2268
2269         * cspi/spi_component.c: Fixed typos and casting error.
2270
2271         * cspi/spi_editabletext.c: Removed redundant casts.
2272
2273         * cspi/spi_hyperlink.c: Fixed casting and exception checking.
2274
2275         * cspi/spi_hypertext.c: Eliminated redundant casts.
2276
2277         * cspi/spi_image.c: Eliminated redundant casts.
2278
2279         * cspi/spi_registry.c: Eliminated redundant casts.
2280         SPI_deregisterGlobalEventListenerAll () removed retval variable.
2281         * cspi/spi_selection.c: Removed redundant casts.
2282         * cspi/spi_text.c: Eliminated redundant casts.  Fixed exception
2283         handling.  Screen geometry and text offsets were being returned as 0
2284         on error which is technically valid-- changed these to return -1.
2285         Added marshaller for text boundary types to fix bug with boundary
2286         types being passed incorrectly to atk.
2287                         
2288 2002-05-09  Bill Haneman <bill.haneman@sun.com>
2289
2290         
2291         * cspi/spi_registry.c:
2292         Fixed nasty bug in SPI_registerAccessibleKeystrokeListener
2293         which was uncovered by the recent key changes.
2294
2295 2002-05-09  Bill Haneman <bill.haneman@sun.com>
2296
2297         * test/event-listener-test.c:
2298         * test/Makefile.am:
2299         Added new test, "event-listener-test"; 
2300         this code does two things; it benchmarks traversal time 
2301         for the accessible hierarchy for the first running accessible 
2302         app, and it connects listeners for all supported event types.  
2303         It is thus useful as an example event listener and for 
2304         diagnostics/debugging of event generation.
2305         
2306 2002-05-08  Bill Haneman <bill.haneman@sun.com>
2307
2308         * test/Makefile.am:
2309         Removed unnecessary dependency on libutil.
2310
2311         * configure.in:
2312         Revved micro version: 0.13.1
2313
2314 2002-05-08  Bill Haneman <bill.haneman@sun.com>
2315
2316         * configure.in: 
2317         Removed util/Makefile from targets.
2318
2319         * Makefile.am:
2320         Removed util subdir from SUBDIRS (temporarily, 
2321         pending removal of magnifier-only code
2322         from UTIL).
2323
2324         * test/simple-at.c:
2325         #ifdef-ed out magnifier dependencies, since
2326         magnifier IDL, headers, and binary now live in
2327         module gnome-mag and we don't want at-spi to depend 
2328         on gnome-mag.  A magnifier demo which can run alongside
2329         simple-at is forthcoming in the gnome-mag module.
2330         
2331         NOTE: Split magnifier binary, IDL, and magnification
2332         activation code from at-spi into module gnome-mag.
2333
2334 2002-05-03  Marc Mulcahy <marc.mulcahy@sun.com>
2335  
2336         * cspi/bonobo/cspi-bonobo.c cspi/bonobo/cspi-bonobo-listener.c
2337         cspi/bonobo/cspi-bonobo-listener.h: Added copyright notice.
2338  
2339 2002-05-03  Bill Haneman <bill.haneman@sun.com>
2340
2341         * configure.in:
2342         Revved to version 0.13.0
2343         
2344         * idl/Accessibility_Registry.idl:
2345         Changed definition of KeySet from sequence of longs to sequence of
2346         KeyDefinitions, and added KeyDefinition struct.
2347         Required for fix to bug 80616.
2348
2349         * cspi/spi_registry.c: SPI_registerAccessibleKeystrokeListener():
2350         Changed AccessibleKeySet to Accessibility_KeySet marshalling code
2351         to use new definition (see above).  
2352
2353         * registryd/deviceeventcontroller.c: handle_keygrab(), 
2354         spi_keyset_contains_key():
2355         Changed to make use of new struct; this allows matching based on
2356         string key-name, for instance "Tab".  This also allows matching of
2357         composed characters, non-alphanumeric characters in a way that
2358         doesn't involve dependencies on X keysym codes directly, etc.
2359         
2360         * test/key-listener-test.c:
2361         Added test for Alt-Tab key using "string" specification of keyset,
2362         and modified one of the tests to use a keycode-based keyset.
2363         Thus this test both tests and demonstrates the creation and use of
2364         keysets of three forms:  specified via keycode array, 
2365         keysym array, and string array. (The string case only contains a
2366         single string, i.e. a string array of length 1).        
2367
2368         * test/simple-at.c:
2369         Turned on PRINT_TREE option by default.  Also fixed a
2370         string-freeing bug in the PRINT_TREE code.  
2371         Added a listener to window:minimize events.
2372         
2373 2002-05-08  Padraig O'Briain  <padraig.obriain@sun.com>
2374
2375         * atk-bridge/bridge.c:
2376         (spi_atk_register_event_listeners) Call atk_add_global_event_listener()
2377         for window:activate and window:deactiveate
2378         (atk_bridge_property_event_listener atk_bridge_signal_listener
2379         atk_bridge_window_event_listener) Tidy debug code
2380
2381 2002-05-02  Marc Mulcahy <marc.mulcahy@sun.com>
2382
2383         * libspi/accessible.c (impl_accessibility_accessible_get_role_name):
2384         Fixed handling for NULL return value from ATK.
2385
2386         * libspi/action.c libspi/component.c libspi/editabletext.
2387         libspi/hyperlink.c libspi/hypertext.c image.c libspi/selection.c
2388         libspi/stateset.c libspi/table.c libspi/text.c libspi/value.c:
2389         Removed redundant casts.
2390         
2391         * libspi/table.c (impl_getSelectedRows, impl_getSelectedColumns):
2392         Fixed off by one bug.
2393         
2394         *libspi/text.c: removed impl_getRowColAtOffset (unimplemented
2395         function not present in idl)
2396         
2397 2002-05-02  jacob berkman  <jacob@ximian.com>
2398
2399         * atk-bridge/Makefile.am: make atk-bridge a real module
2400
2401 2002-04-26  Radek Doulik  <rodo@ximian.com>
2402
2403         * libspi/stateset.c (spi_init_state_type_tables): fix size of
2404         atk_state_types table
2405
2406 2002-04-22  jacob berkman  <jacob@ximian.com>
2407
2408         * util/Makefile.am: 
2409         * libspi/Makefile.am: add deps on the built files to help
2410         automake, and don't version the ORBit typelib
2411
2412 2002-04-19  Padraig O'Briain  <padraig.obriain@sun.com>
2413
2414         * cspi/cspi-lowlevel.h cspi/spi-impl.h cspi/spi-listener.h 
2415         cspi/spi-private.h cspi/spi-roletypes.h cspi/spi-statetype.h
2416         cspi/spi.h cspi/spi_accessible.c cspi/spi_action.c 
2417         cspi/spi_application.c cspi/spi_component.c cspi/spi_editabletext.c
2418         cspi/spi_hyperlink.c cspi/spi_hypertext.c cspi/spi_image.c
2419         cspi/spimain.c cspi/spi_selection.c cspi/spi_streamablecontent.c
2420         cspi/spi_table.c cspi/spi_text.c cspi/spi_value.c
2421         libspi/accessible.h libspi/accessible.h libspi/base.h 
2422         libspi/component.h libspi/editabletext.h libspi/hyperlink.h 
2423         libspi/hypertext.h libspi/image.h libspi/keymasks.h libspi/libspi.h
2424         libspi/relation.h libspi/remoteobject.h libspi/selection.h 
2425         libspi/spi-private.h libspi/statetset.h libspi/table.h
2426         libspi/text.h libspi/util.h libspi/value.h util/mag_client.c
2427         util/mag_client.h util/mag_control.c util/mag_image.c
2428         util/mag_image.h util/magnifier.c util/magnifier.h: 
2429         Add missing file headers; standardize existing ones
2430
2431 2002-04-18  Marc Mulcahy  <marc.mulcahy@sun.com>
2432
2433         * atk-bridge/bridge.c: Added window event support.
2434
2435 2002-04-18  Michael Meeks  <michael@ximian.com>
2436
2437         * libspi/relation.c (impl_getNTargets): impl.
2438         (impl_getTarget): impl.
2439
2440         * libspi/Makefile.am: fix stateset install.
2441
2442 2002-04-17  Bill Haneman <bill.haneman@sun.com>
2443
2444         * NEWS:
2445         Started putting useful info in this file.
2446         
2447 2002-04-17  Marc Mulcahy <marc.mulcahy@sun.com>
2448  
2449         * atk-bridge/bridge.c: 
2450         Propagate state-changed notifications to ATs
2451  
2452         * cspi/spi_registry.c: update docs to reflect actual behavior of
2453         state-change events.
2454
2455 2002-04-17  Bill Haneman <bill.haneman@sun.com>
2456
2457         * configure.in:
2458         Incremented version to 0.12.1
2459         
2460         * util/mag_client.h:
2461         Add missing declaration for magnifier_exit, 
2462         used by mag_control.c - Forte compiler didn't like
2463         the implicit redeclaration of the function :-(
2464
2465
2466 2002-04-16  Bill Haneman <bill.haneman@sun.com>
2467
2468         * configure.in:
2469         Revved version to 0.12 due to API change (see below).
2470
2471         * cspi/spi-roletypes.h:
2472         removed (obsolete) SPI_ROLE_FOCUS_TRAVERSABLE 
2473         definition from the inline docs, and added docs
2474         for SPI_ROLE_LAST_DEFINED.
2475
2476         * cspi/spi.h:
2477         * cspi/spi_streamablecontent.c:
2478         Added missing seek_type parameter to
2479         (so far unused) method, 
2480         AccessibleStreamableContent_seek().
2481         [ RT approval JodyG. ]
2482
2483         * cspi/spi_event.c:
2484         Fixed docs for SPI_createAccessibleKeystrokeListener.
2485
2486         * cspi/spi_registry.c:
2487         Fixed docs for SPI_KEYSET_ALL_KEYS.
2488         
2489         * docs/reference/cspi/at-spi-cspi-sections.txt:
2490         Added a number of missing APIs to SECTIONS.
2491         
2492 2002-04-16  Bill Haneman <bill.haneman@sun.com>
2493
2494         * registryd/Makefile.am:
2495         * cspi/Makefile.am:
2496         * cspi/bonobo/Makefile.am:
2497         Add $(X_LIBS) to makefiles.
2498
2499 2002-04-15  Bill Haneman <bill.haneman@sun.com>
2500
2501         * configure.in:
2502         Revved version to 0.11.
2503
2504         * libspi/component.c:
2505         Added implementation for grabFocus.
2506
2507         * idl/Accessibility_Component.idl
2508         (Accessibility_Component_grabFocus):
2509         Made this method return boolean to indicate success or failure, to
2510         be consistent with cspi and the corresponding ATK method.
2511         
2512         * idl/Accessibility_Selection.idl
2513         (Accessibility_Selection_selectAll) :
2514         Made these methods return boolean to indicate success or
2515         failure, to be consistent with cspi and the corresponding ATK methods.
2516         
2517         * idl/Accessibility_EditableText.idl 
2518         (Accessibility_EditableText_setTextContents,
2519          Accessibility_EditableText_insertText,
2520          Accessibility_EditableText_cutText,
2521          Accessibility_EditableText_deleteText,
2522          Accessibility_EditableText_pasteText):
2523         Made these methods return boolean to indicate
2524         success or failure.
2525
2526         * cspi/spi_editabletext.c:
2527         Made these methods return booleans.
2528
2529         * libspi/selection.c:
2530         * libspi/component.c:
2531         * libspi/editabletext.c:
2532         Connected the boolean returns from ATK
2533         to the server-side code referenced above.
2534         
2535 2002-04-14  Bill Haneman <bill.haneman@sun.com>
2536
2537         * idl/Accessibility_Table.idl: Added missing methods,
2538         Accessibility_Table_addRowSelection,
2539         Accessibility_Table_addColumnSelection,
2540         Accessibility_Table_removeRowSelection,
2541         Accessibility_Table_removeColumnSelection.
2542
2543         * cspi/spi_table.c:
2544         Added C wrappers for above IDL:
2545         AccessibleTable_addRowSelection,
2546         AccessibleTable_addColumnSelection,
2547         AccessibleTable_removeRowSelection,
2548         AccessibleTable_removeColumnSelection.
2549         
2550         * libspi/table.c:
2551         Added server-side implementation code for IDL above, connecting
2552         to pre-existing ATK api.
2553         
2554 2002-04-13  Marc Mulcahy <marc.mulcahy@sun.com>
2555
2556         * idl/Accessibility_State.idl: Made StateSet inherit from BonoboUnknown.
2557
2558         * libspi/accessible.c: Added implementation fo
2559         Accessibility_Accessible_get_state.
2560         
2561         * libspi/libspi.h: Added stateset.h to the list of includes.
2562
2563         * libspi/stateset.c: Fixed broken implementation.
2564
2565 2002-04-13  Bill Haneman <bill.haneman@sun.com>
2566
2567         * util/magnifier.c:
2568         Added implementation code for Accessibility_Magnifier_exit ().
2569
2570         * util/mag_control.c:
2571         Added test code for above method; you can
2572         now kill an existing magnifier via 
2573         ./mag_control q, from the util directory.
2574
2575         * test/key-listener-test.c:
2576         * test/Makefile.am:
2577         Added a new test, for our key listener API.
2578
2579 2002-04-11  Bill Haneman <bill.haneman@sun.com>
2580
2581         * test/app.c, test/keysynth-demo.c:
2582         * util/magnifier.c:
2583         Replace use of snprintf with g_snprintf.
2584         (fix for bugzilla 78249)
2585
2586 2002-03-27  Michael Meeks  <michael@ximian.com>
2587
2588         * Version 0.10.0
2589
2590         * util/Makefile.am (INCLUDES): fix.
2591         (DONT_DIST_SOURCE): don't distribute the
2592         generated files.
2593
2594         * libspi/Makefile.am (dist-hook): ditto.
2595
2596 2002-03-27  Padraig O'Briain  <padraig.obriain@sun.com>
2597
2598         * libspi/hypertext.c:
2599         Fix warnings when yelp is used with atk-bridge
2600
2601 2002-03-21  Michael Meeks  <michael@ximian.com>
2602
2603         * libspi/application.c (spi_application_new):
2604         use spi_accessible_construct so we use the AtkObject
2605         cache correctly.
2606
2607 2002-03-19  Michael Meeks  <michael@ximian.com>
2608
2609         * registryd/registry.c (desktop_remove_application),
2610         (desktop_add_application): clean coding style.
2611
2612         * registryd/desktop.c (spi_desktop_remove_application),
2613         (spi_desktop_add_application): kill re-enterency hazards.
2614         (spi_desktop_dispose): remove bogus redundant cast
2615         obscuring bug; fix bug too.
2616         (spi_desktop_init): make the desktop object immortal.
2617
2618 2002-03-16 Bill Haneman <bill.haneman@sun.com>
2619
2620         * test/simple-at.c:
2621         Added a #define-guarded tree-traversal step
2622         when enumerating the apps (diagnostic tool).
2623
2624 2002-03-15 Bill Haneman <bill.haneman@sun.com>
2625
2626         * idl/Accessibility_Role.idl:
2627         Added ROLE_DRAWING_AREA which seemed to be missing from the
2628         previous commit.
2629
2630 2002-03-14 Marc Mulcahy <marc.mulcahy@sun.com>
2631
2632         * cspi/spi-roletypes.h cspi/spi_accessible.c
2633         idl/Accessibility_Role.idl libspi/accessible.c: synched up role
2634         types with ATK.
2635
2636         * registryd/desktop.c registryd/desktop.h registryd/registry.c:
2637         Added signals to SpiDesktop and callbacks in SpiRegistry to notify
2638         AT when applications are added and removed from the desktop.  This
2639         reverts the previous broken implementation using the backing
2640         AtkObject for the SpiDesktop.
2641         
2642         2002-03-14  Marc Mulcahy <marc.mulcahy@sun.com>
2643
2644         * registryd/desktop.c: emit the "children-changed::add" and
2645         "children-changed::remove" signals on the backing ATK object for
2646         the desktop so AT can tell when applications are started and shut
2647         down.
2648
2649         2002-03-14  Marc Mulcahy <marc.mulcahy@sun.com>
2650
2651         * cspi/spi_accessible.c: Made role names freeable with SPI_freeString ()
2652
2653         2002-03-14  Marc Mulcahy <marc.mulcahy@sun.com>
2654
2655         * libspi/stateset.c: implemented Accessibility_StateSet_compare ()
2656
2657         * cspi/spi_accessible.c: Implemented c bindings for stateset support
2658
2659         * cspi/state-types.h: synched with IDL and ATK
2660
2661         2002-03-13  Bill Haneman <bill.haneman@sun.com>
2662
2663         * libspi/accessible.c 
2664         (impl_accessibility_accessible_get_child_at_index):
2665         Change return value for g_return_if_fail ()
2666         to CORBA_OBJECT_NIL instead of "0" (!)
2667
2668         * registryd/Makefile.am:
2669         * registryd/Accessibility_Register.server.in:
2670         Changed name of executable, "registryd",
2671         to something more informative:
2672         "at-spi-registryd".
2673
2674 2002-03-13  Michael Meeks  <michael@ximian.com>
2675
2676         * atk-bridge/bridge.c (atk_bridge_init): don't register
2677         if we're in a bonobo-component, rather than a bonobo app.
2678
2679 2002-03-13  Michael Meeks  <michael@ximian.com>
2680
2681         * atk-bridge/bridge.c (gtk_module_init): split
2682         out body to (atk_bridge_init): here, since otherwise
2683         we get symbol conflicts and oddness when invoked
2684         from (gnome_accessibility_module_init): here (upd.)
2685
2686 2002-03-11  Bill Haneman  <bill.haneman@sun.com>
2687
2688         * HACKING:
2689         New file.  Explicitly allow "build sheriff" putbacks provided
2690         they are tested on Solaris.
2691         
2692         * docs/reference/cspi/Makefile.am:
2693         Added '-' to the "cp" command for index.sgml.
2694         ("patch by thomasvs, soon coming to a GUADEC near you")
2695
2696         * configure.in:
2697         Incremented version number (0.9.0) for new release.
2698         Changed macro that checks for popt, to better detect
2699         obsolete versions of popt.
2700         
2701         * configure.in:
2702         Added X_LIBS to AC_SUBST, for applications
2703         that call Xlib API directly.
2704         
2705
2706 2002-03-07  Bill Haneman  <bill.haneman@sun.com>
2707
2708         * configure.in:
2709         Include gdk_pixbuf_x11-2.0 in UTILS_LIBS.
2710
2711         * util/Makefile.am:
2712         Fix regression caused by hard-coding major
2713         version of gdk_pixbuf_x11; now use $(UTILS_LIBS)
2714         (see above change).
2715         
2716         * test/test-simple.c (test_editable_text),
2717         (test_test): revert previous change (error was 
2718         a regression in gail which is now fixed).
2719         
2720 2002-03-04  Michael Meeks  <michael@ximian.com>
2721
2722         * test/test-simple.c (test_editable_text),
2723         (test_text): pass G_MAXINT instead of '-1' for
2724         whole string - is this a good thing !?
2725
2726         * cspi/spi_accessible.c
2727         (Accessible_getRelationSet): fix crasher bug
2728         overwriting the end of the array.
2729
2730         * test/test-simple.c (validate_accessible): free,
2731         not g_free returned relation set.
2732
2733 2002-02-26 Marc Mulcahy <marc.mulcahy@sun.com>
2734
2735         * libspi/stateset.c libspi/stateset.h libspi/Makefile.am:
2736         implemented stateset support
2737
2738         * idl/Accessibility_State.idl: Made necessary changes to
2739         the IDL to support state sets.
2740
2741 2002-02-12 Bill Haneman <bill.haneman@sun.com>
2742
2743         * registryd/deviceeventcontroller.c:
2744         Added implementation for generateMouseEvent.
2745
2746         * cspi/spi_registry.c:
2747         Connected new implementation for generateMouseEvent
2748         to the C bindings.
2749         
2750 2002-02-12 Bill Haneman <bill.haneman@sun.com>
2751
2752         * configure.in: 0.8
2753         Incremented revision (but no change in public API
2754         outside of 'utils', which are not installed public yet.)
2755
2756         * libspi/component.c:
2757         Changed to use atk_component API for layers and
2758         mdi_zorder, instead of deprecated atk_object API.
2759         
2760         Magnification Utility Enhancements:
2761         
2762         * util/magnifier.c:
2763         Added implementation of createZoomRegion, clearAllZoomRegions,
2764         resizeZoomRegion.  Added new commandline argument
2765         "--no-initial-region".  Note that clearAllZoomRegions doesn't
2766         unmap the old '0' region as it should (yet), and the other
2767         methods only work when creating/resizing a single region,
2768         which is "region 0".  
2769         (Code for multiple region support will be added later.)
2770
2771         * util/mag_image.c:
2772         Now we raise the magnifier window each time it's refreshed;
2773         this will help keep it on top.
2774         
2775         * util/mag_client.h:
2776         Added simple wrappers for above, used by mag_control.
2777         For general use, it's recommended to use the bonobo magnifier
2778         control API directly instead of using these wrappers.
2779
2780         * util/mag_image.h:
2781         Moved ZoomRegionData from magnifier.c to this file.
2782         
2783         * util/mag_control.c: 
2784         Added some code to exercise new IDL implementations.
2785         
2786 2002-02-06 Marc Mulcahy <marc.mulcahy@sun.com>
2787
2788         * libspi/text.c: Provide implementation for getAttributes.
2789
2790 2002-02-04  Bill Haneman <bill.haneman@sun.com>
2791         
2792         * configure.in:
2793         Incremented revision.
2794
2795         * test/test-simple.c:
2796         Replaced use of deprecated g_main_iteration with 
2797         g_main_context_iteration.
2798         
2799 2002-01-28  Padraig O'Briain <padraig.obriain@sun.com>
2800
2801         * configure.in:
2802         Incremented revision for desktop alpha 2.
2803
2804 2002-01-28  Mark McLoughlin  <mark@skynet.ie>
2805
2806         * libspi/remoteobject.[ch]: make RemoteObject and interface rather
2807         than an atk object.
2808
2809         * test/simple-at.c: include netinet/in.h.
2810
2811 2002-01-24  Mark McLoughlin  <mark@skynet.ie>
2812
2813         * cspi/spi_accessible.c: (Accessible_getRelationSet):
2814         use NULL, not CORBA_OBJECT_NIL.
2815
2816         * libspi/accessible.c:
2817         (impl_accessibility_accessible_get_relation_set):
2818         allocate the sequence correctly.
2819
2820         * libspi/remoteobject.h: kill spi_remote_object_new.
2821
2822         * test/test-simple.c: (validate_accessible): add code
2823         to test relation sets, now all we need is to figure
2824         out how to excercise this code path :/
2825
2826 2002-01-18  Michael Meeks  <michael@ximian.com>
2827
2828         * test/test-simple.c
2829         (key_listener_cb): consume the key.
2830         (test_keylisteners): update.
2831         (main): wait for any pending unrefs on events.
2832
2833         * registryd/deviceeventcontroller.c
2834         (spi_controller_update_key_grabs): only re-issue the
2835         grab on a key release.
2836         (spi_device_event_controller_forward_key_event):
2837         refresh the keygrabs before we notify the listeners,
2838         to reduce the X ungrab / re-grab race.
2839         (spi_controller_register_with_devices): remove
2840         XSelectInput - we do that with the gdk_window_ call.
2841         (_spi_controller_device_error_handler): return a value.
2842         s/GDK_DISPLAY/spi_get_display/
2843
2844 2002-01-17  Michael Meeks  <michael@ximian.com>
2845
2846         * registryd/deviceeventcontroller.c
2847         (_deregister_keygrab): don't blow out the later
2848         assertion.
2849
2850         * test/test-simple.c (test_keylisteners): do a
2851         more intelligent validation.
2852
2853 2002-01-14  Michael Meeks  <michael@ximian.com>
2854
2855         * atk-bridge/bridge.c
2856         (gnome_accessibility_module_init),
2857         (gnome_accessibility_module_shutdown): impl.
2858         (gtk_module_init): protect vs. double inits.
2859         (add_signal_listener): impl.
2860         (spi_atk_bridge_state_event_listener): kill
2861         (deregister_application): split out of
2862         (spi_atk_bridge_exit_func): here.
2863
2864 2002-01-18  Bill Haneman <bill.haneman@sun.com>
2865
2866         * test/simple-at.c:
2867         Added caret tracking when using magnifier, and 
2868         now use text bounds for focus tracking of text elements, rather than
2869         the component bounds - this is helpful for short text fields in long
2870         table cells, at high magnification.
2871         
2872 2002-01-16  Bill Haneman <bill.haneman@sun.com>
2873
2874         * registryd/deviceeventcontroller.c:
2875         Regression fix for keylistener de-registration; global keygrabs
2876         were not being released when deregisterKeystrokeListener was
2877         called in cspi, since 
2878         Accessibility_DeviceEventController_deregisterKeystrokeListener
2879         was called with a zero-length keyset.  That is because the cspi
2880         method, SPI_deregisterKeystrokeListener, does not take a keyset
2881         parameter but instead should remove all the key grabs held be a
2882         keystroke listener.  
2883         The code in impl_deregister_keystroke_listener was changed to copy
2884         the keylist from the listener instance previously registered with
2885         the DeviceEventController before releasing the grabs.
2886
2887         * registryd/registry.c:
2888         * registryd/deviceeventcontroller.c:
2889         * libspi/spi-private.h:
2890         * libspi/util.c:
2891         Changed spelling of "re-enterant" to "re-entrant" globally.
2892
2893 2002-01-16  Bill Haneman <bill.haneman@sun.com>
2894
2895         * test/test-simple.c:
2896         Changed key listeners test - the test was slightly mis-using the
2897         (admittedly poorly documented) SPI_generateKeyboardEvent API.
2898         It now uses '=' as the key event listened to and generated,
2899         relying on a keysym match rather than assuming that keycode 33 
2900         is always equal to keysym '!'.
2901
2902 2002-01-15  Bill Haneman <bill.haneman@sun.com>
2903
2904         * test/simple-at.c:
2905         Changed simple-at to use a specific keyset, rather than
2906         SPI_KEYSET_ALL_KEYS - this helps minimize clashes with the window
2907         manager, desktop, etc.
2908         
2909 2002-01-11  Bill Haneman <bill.haneman@sun.com>
2910
2911         * registryd/deviceeventcontroller.c:
2912         Replaced standard X error handler with a special handler that 
2913         is non-fatal for failed keygrabs.  This works around 
2914         problems with keygrab clashes sometimes observed on 
2915         Solaris using CDE.
2916         Re-instated SPI_DEVICE_TYPE_MOUSE in enum (didn't reinstate 
2917         mouse handling code as yet).
2918         
2919 2002-01-11  Bill Haneman <bill.haneman@sun.com>
2920
2921         * configure.in:
2922         Incremented revision for desktop alpha release.
2923
2924         * README:
2925         Fixed a couple of the more glaring errors (still not 
2926         very up-to-date).
2927
2928 2002-01-11  Michael Meeks  <michael@ximian.com>
2929
2930         * registryd/deviceeventcontroller.c
2931         (spi_device_event_controller_forward_key_event): kill
2932         XUngrabKey / XKeyGrab race.
2933         (spi_controller_grab_keyboard): rename to
2934         (spi_controller_update_key_grabs): this, and deal
2935         with incremental adding / removing grabs more
2936         sensibly.
2937         (_register_keygrab): ensure we're not pending a remove.
2938         (spi_grab_mask_free): impl.
2939         (spi_controller_register_global_keygrabs): split out
2940         common code into:
2941         (handle_keygrab): impl.
2942         (_deregister_keygrab): impl.
2943         (spi_controller_deregister_global_keygrabs): impl.
2944         (spi_controller_update_key_grabs): re-issue the grab if
2945         we just recieved a notification.
2946
2947         * test/test-simple.c (key_listener_cb): remove debug.
2948
2949         * registryd/deviceeventcontroller.c
2950         (spi_controller_register_device_listener): after
2951         registering a global keygrab, actualy register it !
2952         don't wait for a timeout; doh !
2953
2954         * registryd/deviceeventcontroller.[ch]: s/DeviceEvent/DE/
2955         to make it more readable / manipulable.
2956         s/grabmask/grab_mask/ s/refcount/ref_count/
2957         s/keyval/key_val/ s/modmask/mod_mask
2958
2959 2002-01-08  Michael Meeks  <michael@ximian.com>
2960
2961         * registryd/deviceeventcontroller.c
2962         (spi_controller_register_with_devices): use gdk calls to
2963         setup a filter.
2964         (global_filter_fn): implement the filter.
2965         (spi_device_event_controller_check_key_event): rename to
2966         (spi_device_event_controller_forward_key_event): this & upd.
2967         (spi_get_display): replace with GDK_DISPLAY.
2968
2969         * registryd/deviceeventcontroller.c
2970         (spi_controller_deregister_device_listener): unroll into
2971         (impl_deregister_keystroke_listener): here to simplify.
2972         (spi_controller_register_global_keygrabs): split cut and
2973         paste (!) out into (_register_keygrab): here, shorter & sweeter.
2974         (spi_controller_deregister_device_listener): remove.
2975         (impl_register_mouse_listener): remove, no mouse listener
2976         support in at-spi-1.0
2977
2978         * registryd/registry.c
2979         (_device_event_controller_hook): kill.
2980         (spi_registry_init): upd.
2981
2982         * registryd/deviceeventcontroller.c
2983         (spi_device_event_controller_class_init): upd.
2984         (spi_check_key_event): merge into.
2985         (spi_device_event_controller_check_key_event):
2986         here and kill strange static ev init, don't leak
2987         the x_event - nor dynamicaly allocate it.
2988
2989         * registryd/registry-main.c (main): re-direct
2990         timeout to remove strange vtable mess.
2991
2992         * registryd/deviceeventcontroller.c
2993         (remove_listener_cb): impl.
2994         (spi_controller_deregister_device_listener):
2995         fix re-enterancy hazard.
2996
2997 2002-01-07  Michael Meeks  <michael@ximian.com>
2998
2999         * registryd/deviceeventcontroller.c
3000         (spi_device_event_controller_new): upd.
3001         (impl_notify_listeners_sync): upd. debug.
3002         (spi_notify_keylisteners): fix re-enterancy hazards,
3003         prettify, remove O(n*n) iteration.
3004         (spi_controller_grab_keyboard): fix iteration.
3005         (spi_check_key_event): re-format to suit coding style.
3006         Clean all the warnings - we're warning free.
3007
3008         * registryd/deviceeventcontroller.h:
3009         * registryd/registry.h: make mutualy referential with
3010         typesafe forward references instead of (!) void pointer
3011         hacks.
3012
3013 2002-01-11  Michael Meeks  <michael@ximian.com>
3014
3015         * cspi/spi_accessible.c (role_names): add a role name
3016         to sync this array with the enum; and make the regression
3017         tests pass, sigh.
3018
3019 2002-01-10  Michael Meeks  <michael@ximian.com>
3020
3021         * cspi/spi_registry.c (SPI_generateKeyboardEvent): 
3022         allow expansion of enumeration & kill warning.
3023
3024         * test/test-simple.c (key_listener_cb): impl.
3025         (test_keylisteners): impl.
3026
3027         * cspi/spi-listener.h: make listener signatures const
3028         on the provided (const) events.
3029
3030         * test/keysynth-demo.c: upd. to const events.
3031
3032         * test/simple-at.c: ditto.
3033
3034 2002-01-11  Bill Haneman <bill.haneman@sun.com>
3035
3036         * configure.in:
3037         Rev the version to 0.5 (the previous tarball was named 0.4, 
3038         even though the micro number was 3), so we need to rev upwards
3039         again for beta2/"desktop-alpha" 
3040  
3041         * test/demo.csh:
3042         Checked in a demo script, which requires editing before use!
3043         Proceed with caution.
3044         
3045         * libspi/value.h:
3046         Fixed typo in header which was redefining SPI_ACTION_CLASS.
3047
3048         * cspi/spi_accessible.c:
3049         Add a couple of missing enum initializations, and fix some enum
3050         comments.
3051
3052         * cspi/spi_registry.c:
3053         Add comment describing keystring parameter to SPI_generateKeyboardEvent.
3054         
3055         * docs/reference/cspi/at-spi-cspi-sections.txt:
3056         Remove/fix a couple of broken document references.
3057
3058         * test/simple-at.c:
3059         Minor tweaks to the demo.  We now (sigh) use Alt-SHIFTLOCK as well
3060         as Alt-Control to listen for commands, since on some systems
3061         Control-Alt may already be grabbed.
3062
3063 2002-01-10  Bill Haneman <bill.haneman@sun.com>
3064
3065         * configure.in:
3066         Update version number to 0.4 for Beta2.
3067         
3068         * libspi/accessible.c, libspi/accessible.h:
3069         Expose spi_accessible_construct, to enable libgail-gnome
3070         construction from spi_accessible subtype.
3071
3072         * utils/magnifier.c:
3073         Workaround for bug in some non-gnome-compliant window managers
3074         which made magnifier resize improperly.
3075
3076 2002-01-09  Bill Haneman <bill.haneman@sun.com>
3077
3078         * libspi/accessible.c: (spi_accessible_new) :
3079         Move the test for SPI_IS_REMOTE_OBJECT to
3080         spi_accessible_new_return, fixing a bug and compile time warning.
3081         
3082 2002-01-08  Michael Meeks  <michael@ximian.com>
3083
3084         * registryd/registry.c (parse_event_type): remove strndup.
3085
3086         * libspi/Makefile.am (libspi_la_SOURCES): remove
3087         sources already included in the headers section.
3088
3089         * libspi/util.c: add.
3090
3091         * libspi/spi-private.h: add.
3092
3093         * registryd/registry.c: update to moved list iterators.
3094
3095 2002-01-05  Michael Meeks  <michael@ximian.com>
3096
3097         * test/simple-at.c (main): upd. auto-module set to atk-bridge
3098
3099         * test/test-simple.c (main): ditto.
3100
3101 2002-01-04  Michael Meeks  <michael@ximian.com>
3102
3103         * libspi/accessible.c (spi_accessible_new): remove 2nd,
3104         redundant construct.
3105
3106         * registryd/registry.c
3107         (get_listener_list): impl.
3108         (impl_accessibility_registry_register_global_event_listener):
3109         re-impl. to simplify using ~, remove dodgy const cast off.
3110         (parse_event_type): constify.
3111         (impl_accessibility_registry_deregister_global_event_listener_all): 
3112         re-write, more efficiency and simplicity, kill re-enterancy
3113         hazard.
3114         (compare_listener_corbaref, compare_corba_objects),
3115         (compare_listener_quarks): define out.
3116         (impl_accessibility_registry_deregister_global_event_listener): 
3117         re-write for effiency, and nail re-enterancy hazard.
3118         (impl_accessibility_registry_get_desktop_list): impl.
3119         (re_enterant_list_delete_link): impl.
3120         (re_enterant_list_foreach): impl.
3121         (remove_listener_cb): impl.
3122         (_registry_notify_listeners): kill.
3123         (notify_listeners_cb): impl.
3124
3125         * cspi/spi_registry.c (SPI_freeDesktopList): impl.
3126         (SPI_getDesktopList): impl.
3127
3128         * test/test-simple.c (test_desktop): test the methods.
3129
3130 2002-01-03  Michael Meeks  <michael@ximian.com>
3131
3132         * cspi/spi_event.c (SPI_createAccessibleKeySet): dup the
3133         keystrings since we free them
3134         (SPI_freeAccessibleKeySet): in here.
3135
3136         * libspi/accessible.c (spi_accessible_new): kill warning,
3137         wonder what is going on with the constructor here.
3138
3139 2002-03-01  Bill Haneman <bill.haneman@sun.com>
3140
3141         * libspi/accessible.c (spi_accessible_new ()) :
3142         Added check to see if AtkObject is an SpiRemoteObject before
3143         creating an SpiAccessible.
3144         
3145 2002-05-01  Bill Haneman <bill.haneman@sun.com>
3146
3147         * registryd/deviceeventcontroller.c (spi_controller_grab_keyboard):
3148         Enable keygrabs using the Control modifier, now that they are
3149         working properly (they were previously disabled).
3150
3151         * test/simple-at.c:
3152         Change the command keygrab for this demo to "Control+Alt", so as
3153         to conflict with fewer other key commands on the system; this
3154         means that the quit command for "simple-at" is now "Ctrl-Alt-q".
3155
3156         Removed a pointlessly-chatty keylistener for unshifted keys
3157         (shifted keys are still reported).
3158         
3159 2002-02-01  Bill Haneman <bill.haneman@sun.com>
3160
3161         * libspi/remoteobject.h:
3162         * libspi/remoteobject.c:
3163         Added definitions for special AtkObject subtype, required for
3164         support of remote components (specifically, used by BonoboControl
3165         accessibility implementation).
3166         
3167 2002-01-02 Marc Mulcahy  <marc.mulcahy@sun.com>
3168
3169         * cspi/spi.h: synched relation types with ATK
3170
3171         * cspi/spi_accessible.c: Added implementations of
3172         AcccessibleRelation_* methods
3173
3174         * idl/Accessibility_Relation.idl: added getRelationTypeName
3175         method.  Synched known relation types with ATK.  Allowed for
3176         relation type extension with the RELATION_EXTENDED type.
3177         
3178         * libspi/relation.c: Provided implementations for
3179         AccessibleRelation methods.
3180
3181 2002-01-01  Bill Haneman <bill.haneman@sun.com>
3182
3183         API tweaks for today's API 'freeze'.
3184
3185         * idl/*:
3186         Added placeholder functions to allow future compatible expansion
3187         of the IDL interfaces.
3188
3189         * idl/Accessibility_Registry.idl:
3190         Changed generateKeyEvent to generateKeyboardEvent.  Changed
3191         signature of this method to accept an optional keystring in
3192         parameter (for complex text input synthesis) and changed use of
3193         simple 'boolean' parameter in registerKeystrokeListener to a
3194         struct, EventListenerMode.
3195
3196         * cspi/spi_accessible.c:
3197         * cspi/spi.h:
3198         * cspi/spi_streamablecontent.c:
3199         Added references to AccessibleStreamableContent interface, and
3200         definition and implementation of AccessibleStreamableContent 
3201         C bindings.
3202
3203         * cspi/spi_registry.c:
3204         * cspi/spi.h:
3205         Changed generateKeyEvent API to generateKeyboardEvent,
3206         taking a new (optional) keystring parameter to support complex
3207         text input.
3208         
3209         * at-bridge/*:
3210         * atk-bridge/*:
3211         Renamed directory (to better reflect its actual purpose, bridging
3212         from at-spi to ATK).  The .so module is also now named
3213         libatk-bridge.so.
3214
3215         * idl/Accessibility_Hypertext.idl:
3216         * libspi/accessible.c:
3217         * libspi/hypertext.h:
3218         * libspi/hypertext.c:
3219         Changed Accessibility_Hypertext to *not* derive from
3220         Accessibility_Text.
3221
3222         * cspi/spi_registry.c:
3223         Added list of legal event type names for 'window' events, which
3224         completes the registry event API.
3225
3226 2001-12-22  Marc Mulcahy  <marc.mulcahy@sun.com>
3227
3228         * at-bridge/bridge.c: Added registration for separate
3229         "Atktext:text-changed::insert" and "AtkText:text-changed::delete"
3230         signals.  If either of the first two parameters to the generic
3231         bridge signal handler are ints, they are passed on as event
3232         details.  This allows an AT to determine what text was inserted.
3233
3234 2001-12-21  Bill Haneman <bill.haneman@sun.com>
3235
3236         * registryd/deviceeventcontroller.c:
3237         Fixed regressions in generateKeyEvent caused by the removal of
3238         gdk_init from registryd; we now use pure X calls to connect to the
3239         display, which makes sense because deviceeventcontroller already
3240         uses a fair bit of X API (should eventually be migrated to a
3241         'portability layer').
3242
3243         * registryd/desktop.c:
3244         Fixed minor regression in spi_desktop_init, changed the way the
3245         desktop name is being set to work with new spi_base API
3246         (gobject-based, rather than AtkObject-based).
3247
3248         * registryd/Makefile.am:
3249         Minor revision of makefile to use XTST_LIBS variable rather than
3250         hard-wiring the Xtst LD_ADD element.
3251
3252         * test/keysynth-demo.c:
3253         Tweaked an output message; added initialization of the
3254         'keystrings' member of the "switch listener" key_set.
3255
3256         * libspi/relation.c:
3257         Squashed compile-time warning.
3258
3259         * libspi/accessible.c:
3260         Cosmetic and formatting fixes, renamed a static method.
3261         
3262 2001-12-18 Marc Mulcahy <marc.mulcahy@sun.com>
3263
3264         * libspi/accessible.c 
3265         * libspi/action.c
3266         * libspi/application.c 
3267         * libspi/base.c 
3268         * libspi/base.h
3269         * libspi/component.c 
3270         * libspi/editabletext.c
3271         * libspi/hyperlink.c 
3272         * libspi/hypertext.c
3273         * libspi/image.c 
3274         * libspi/selection.c 
3275         * libspi/table.c
3276         * libspi/text.c 
3277         * libspi/value.c 
3278         * registryd/desktop.c:
3279         Changed SpiBase to contain a GObject pointer rather than an AtkObject
3280
3281 2001-12-17  Bill Haneman <bill.haneman@sun.com>
3282
3283         * idl/Accessibility_Registry.idl:
3284         Added boolean member 'is_text' to DeviceEvent.  This is for the
3285         use of key events, and helps prevent ambiguity between composed
3286         key strings and keysym names, since both may potentially be
3287         returned in the 'event_string' member.
3288
3289         * at-bridge/bridge.c:
3290         * registryd/deviceeventcontroller.c:
3291         Use the 'is_text' member when notifying device event listeners.
3292         Knon issue: composed characters are not dealt with correctly by
3293         the global key listener implementation yet.
3294         
3295 2001-12-17  Bill Haneman <bill.haneman@sun.com>
3296
3297         * at-bridge/bridge.c:
3298         Namespaced local static methods to spi_atk_bridge_* where
3299         previously named bridge_*, and spi_* elsewhere.
3300
3301         * at-bridge/bridge.c:
3302         * cspi/bonobo/cspi-bonobo-listener.c:
3303         Added demarshalling/conversion for string member of
3304         Accessibility_DeviceEvent to AccessibleKeystroke.
3305
3306         * registryd/deviceeventcontroller.c:
3307         Added code to fill the Accessibility_DeviceEvent key string value
3308         member for global key events (i.e. from XGrabKey), to match
3309         behavior of Accessibility_DeviceEvent from the toolkit key events
3310         from the bridge.  Fixed timestamp in global key event notifications.
3311
3312         * test/simple-at.c:
3313         Added printout of key event's string value to
3314         report_ordinary_key_event, for demo/debugging purposes.
3315
3316 2001-12-15  Bill Haneman <bill.haneman@sun.com>
3317
3318         * idl/Accessibility_Registry.idl:
3319         Removed Accessibility_KeyStroke structure in favor of generic
3320         Accessibility_DeviceEvent structure.
3321         Changed Accessibility_ControllerEventMask from a struct to an
3322         unsigned long.
3323
3324         * at-bridge/bridge.c:
3325         Changed APIs to use DeviceEvent structure as above, and removed
3326         bogus casting between these event structures.
3327
3328         * cspi/spi-listener.h:
3329         Added keystring member of AccessibleKeystroke structure, to enable
3330         matching on event "names" rather than only hardware codes and
3331         keysyms.
3332
3333         * cspi/spi.h:
3334         Added keystrings member of AccessibleKeySet struct, to allow
3335         matching on event names (as above).
3336         Added declarations for SPI_createAccessibleKeySet and
3337         SPI_freeAccessibleKeySet.  Due to changes in libspi, we now pass
3338         event modmasks directly as unsigned ints rather than structs with
3339         refcounts, in the DeviceEventController methods.
3340
3341         * cspi/spi_registry.c:
3342         Add SPI_createAccessibleKeySet and SPI_freeAccessibleKeySet methods.
3343
3344         * cspi/spi-roletypes.h:
3345         Added documentation of newly added SPI Roles.
3346
3347         * cspi/bonobo/cspi-bonobo-listener.c:
3348         Changes in support of API changes above.
3349         
3350         * libspi/accessible.c:
3351         Converted APIs to use DeviceEvent structure (see IDL changes
3352         above). 
3353
3354         * registryd/deviceeventcontroller.c:
3355         Added DEControllerGrabMask structure to track keygrabs not only by
3356         modmask but by keyset as well; this allows us to do "global"
3357         (i.e. X) keygrabs on a per-key or keyset basis rather than always
3358         grabbing on AnyKey and then filtering after-the-fact.
3359         Bugfixes for event filtration mean that we don't get false matches
3360         on SPI_KEY_RELEASED, when only SPI_KEY_PRESSED was requested.
3361
3362         * registryd/deviceeventcontroller.c:
3363         Namespaced a number of static methods to use spi_ prefix.  Major
3364         revision to internals of global (i.e. X) key grabs.
3365
3366         * registryd/deviceeventcontroller.h:
3367         Removed keymask_list and added keygrabs_list to
3368         SpiDeviceEventController struct.
3369
3370         * test/simple-at.c:
3371         Added use of SPI_createAccessibleKeySet API when creating a
3372         listener for only one key.  Attach a listener to "shift spacebar
3373         SPI_KEY_RELEASE" as a demonstration.  Changed (incorrect) usage of
3374         X key event names to SPI key event names, so that listeners are
3375         registered for (SPI_KEY_PRESSED | SPI_KEY_RELEASED), for instance.
3376         
3377         * test/keysynth-demo.c:
3378         Changed (incorrect) use of X key event names (KeyPressed,
3379         KeyReleased) to SPI enums SPI_KEY_PRESSED and SPI_KEY_RELEASED.
3380         
3381
3382 2001-12-12  Bill Haneman <bill.haneman@sun.com>
3383
3384         * libspi/accessible.c:
3385         Convert all AtkRole enumerations to Accessibility_Role enums when
3386         getting a role from an AtkObject.
3387         
3388         * cspi/spi_accessible.c:
3389         Complete the conversion of Accessibility_Role enums at runtime to
3390         AccessibleRole (SPI_ROLE_*) roles in Accessible_getRole, so that
3391         role enums correctly match those given in spi-roletypes.h.  
3392         Re-synchronize the local names list for AccessibleRole_getName ().
3393         AccessibleRole_getName is now deprecated, since it duplicates the
3394         more reliable Accessible_getRoleName.
3395         Added some role types from Accessibility_Role.idl.
3396
3397         * idl/Accessibility_Role.idl:
3398         Added some role types used by AtkRole.
3399
3400 2001-12-12  Bill Haneman <bill.haneman@sun.com>
3401         
3402         * cspi/spi.h:
3403         * cspi/spi_registry.c:
3404         * cspi/spi_event.c:
3405         * cspi/cspi-bonobo-listener.c:
3406         Namespaced all methods that did not begin with an "SPI_" or
3407         "Accessible" prefix to "SPI_".  
3408
3409         * cspi/spi_main.c:
3410         Homogenized internal function namespace to "cspi_" for statics.
3411         
3412         * test/*.c:
3413         Patched tests to use the new CSPI API.
3414
3415         * docs/reference/cspi/at-spi-cspi-sections.txt:
3416         Updated docs to reflect namespace changes, and added a number of
3417         methods to the documentation.
3418         
3419         * registryd/registry.c:
3420         Changed use of strings and string hashes in listener event
3421         matching and parse_event_string to use GQuark, which is guaranteed
3422         unique.
3423         
3424         * registryd/registry.h:
3425         Squashed annoying warning.
3426
3427         * idl/Accessibility_Role.idl:
3428         Extended range of available Accessibility_Role values.
3429
3430         * cspi/spi_accessible.c:
3431         Re-ordered role names. 
3432
3433 2001-12-12  Bill Haneman <bill.haneman@sun.com>
3434
3435         * idl/Accessibility_Value.idl:
3436         Revert use of union back to CORBA_double, since the double type is
3437         more efficient and can contain the other types without loss of
3438         precision.
3439
3440         * idl/Accessibility_Accessible.idl:
3441         Added method Accessibility:Accessible:getRoleName, to complement
3442         Accessibility:Accessible:getRole.
3443
3444         * cspi/spi_accessible.c:
3445         * cspi/spi.h:
3446         Added C binding for above, Accessible_getRoleName (), and changed
3447         signature of Accessible_getRole () to return an AccessibleRole.
3448
3449         * cspi/spi-roletypes.h:
3450         Changed AccessibleRole_getName to return a char * instead of a
3451         const char *.  This method is now at least temporarily deprecated 
3452         in favor of asking Accessibles for their RoleNames directly.
3453
3454         * libspi/value.c:
3455         Revert to match Accessibility_Value.idl;
3456
3457         * cspi/spi_value.c:
3458         * cspi/spi.h:
3459         Change signature of AccessibleValue methods to use double rather
3460         than float.
3461
3462         * cspi/spi.h:
3463         * cspi/spi_accessible.c:
3464         Changed Accessible_getRole to return an AccessibleRole enum rather
3465         than a UTF-8 string.  The UTF-8 string can still be obtained via
3466         AccessibleRole_getName ().
3467         
3468         * test/test-simple.c:
3469         Add test_action.  Small fixup to match API change to Accessible_getRole.
3470
3471         * libspi/action.c:
3472         Bugfix for get_action_from_servant ().
3473
3474 2001-12-11  Michael Meeks  <michael@ximian.com>
3475
3476         * libspi/libspi.h: remove registry.h and
3477         desktop.h, deviceeventcontroller.h
3478
3479         * libspi/Makefile.am: remove registry.[ch],
3480         desktop.[ch], deviceeventcontroller.[ch]
3481
3482         * registryd/Makefile.am: add registry.[ch],
3483         desktop.[ch], rename registryd.c to registry-main.c.
3484         add deviceeventcontroller.[ch]
3485
3486 2001-12-11  Bill Haneman <bill.haneman@sun.com>
3487
3488         * test/simple-at.c:
3489         Replace setenv() call with putenv ().
3490
3491         * libspi/component.c:
3492         Bugfix in AccessibleComponent_getExtents (),
3493         (from Adi Dascal).
3494         
3495 2001-12-11  Michael Meeks  <michael@ximian.com>
3496
3497         * libspi/image.c (impl_getImageExtents): impl.
3498         (spi_image_class_init): upd.
3499
3500         * cspi/spi_image.c
3501         (AccessibleImage_getImageDescription): fix daft bug
3502         of mine (doh).
3503
3504         * test/test-simple.c (global_listener_cb): update
3505         to only quit if not --poke
3506         (main): catch --poke.
3507         (validate_accessible): upd. dumping, call test_image
3508         (test_image): impl.
3509
3510         * libspi/Makefile.am (IDL_DEPS): fixup the IDL
3511         dependencies.
3512
3513         * idl/Accessibility.idl: update all IDL includes.
3514
3515         * idl/*.idl - rename to namespace - this sucks, blame
3516         mjs' bad decision for oafd.
3517
3518         * test/test-simple.c (create_test_window): add more tests.
3519         (create_tree): split this out.
3520         (validate_accessible): bugfix.
3521
3522 2001-12-11  Michael Meeks  <michael@ximian.com>
3523
3524         * cspi/bonobo/cspi-bonobo-listener.c: 
3525         (cspi_kestroke_listener_unref),
3526         (cspi_event_listener_unref): impl. undoing previous
3527         homenous environment - for Bill.
3528
3529         * cspi/spi_table.c (long_seq_to_array): use
3530         malloc instead.
3531
3532         * cspi/spi_main.c: split out all bonoboish bits into
3533         bonobo/
3534
3535         * cspi/spi-impl.h: upd. typedefs.
3536
3537         * cspi/spi_registry.c: update to lowlevel API,
3538         return booleans to indicate success in some places.
3539
3540         * cspi/spi_event.c: update to lowlevel API.
3541
3542         * cspi/bonobo/Makefile.am: add.
3543
3544         * cspi/bonobo/cspi-lowlevel.h: add
3545
3546         * cspi/bonobo/cspi-bonobo.c: add
3547
3548         * cspi/bonobo/cspi-bonobo-listener.[ch]: impl.
3549
3550         * cspi/Makefile.am: remove spi-listener-impl.[ch],
3551         (SUBDIRS): add bonobo, link in the libs.
3552
3553         * cspi/spi-util.c: kill this file.
3554
3555         * TODO: merge in my bits.
3556
3557 2001-12-11  Michael Meeks  <michael@ximian.com>
3558
3559         * test/test-simple.c (test_value, test_table, main):
3560         remove unused variables causing warnings.
3561
3562         * configure.in: cleanup checks - require gail.
3563
3564 2001-12-11  Bill Haneman  <bill.haneman@sun.com>
3565
3566         * idl/Value.idl:
3567         Changed Value interface to use SValue (scalars) rather than
3568         assuming all values are floats.  This allows floats, doubles,
3569         longs, shorts, and unsigned values to be manipulated.
3570         Introduced Accessibility:SValue union.
3571
3572         * libspi/value.c:
3573         Updated to use new API above, and to work correctly with GValues
3574         of different types in AtkValue.
3575
3576         * cspi/spi_value.c:
3577         Updated to use new API above.  cspi's API is as yet unchanged.
3578
3579         * TODO: 
3580         Updated the Value revision action item.
3581         
3582 2001-12-10  Bill Haneman  <bill.haneman@sun.com>
3583
3584         * test/test-simple.c:
3585         Added test_table (GtkTreeView widget in test window to follow).
3586         Un-commented test_value, added GtkRange widget.
3587         Added GtkTreeView widget with GtkListStore.  It passes regression
3588         test but leaks one SPI object for some reason.
3589
3590         * libspi/value.c:
3591         Fixed bug in impl__set_currentValue.
3592
3593 2001-12-10  Michael Meeks  <michael@ximian.com>
3594
3595         * cspi/spi_text.c: audit for exception handling,
3596         tolerating NULL object references safely etc.
3597
3598         * cspi/spi_value.c: ditto.
3599
3600         * cspi/spi_table.c (AccessibleTable_getSummary),
3601         (AccessibleTable_getAccessibleAt),
3602         (AccessibleTable_getRowHeader),
3603         (AccessibleTable_getColumnHeader),
3604         (AccessibleTable_getCaption): fix bugs hidden by
3605         incorrect casts.
3606         (long_seq_to_array): impl.
3607         (AccessibleTable_getSelectedRows),
3608         (AccessibleTable_getSelectedColumns): use it.
3609
3610 2001-12-10  Bill Haneman  <bill.haneman@sun.com>
3611
3612         * TODO:
3613         Added a TODO list (rough and short for now).
3614
3615         * cspi/spi_hyperlink.c:
3616         * cspi/spi_hypertext.c:
3617         Fixed macro name typos, and remove use of obsolete macro in 
3618         AccessibleHyperlink_getLink.
3619
3620         * cspi/spi_action.c:
3621         * cspi/spi_accessible.c:
3622         * cspi/spi_application.c:
3623         * cspi/spi_component.c:
3624         * cspi/spi_selection.c:
3625         * cspi/spi_text.c:
3626         * cspi/spi_value.c:
3627         Documentation fixes (removed return values from ref/unref methods).
3628
3629 2001-12-10  Michael Meeks  <michael@ximian.com>
3630
3631         * cspi/spi_action.c: audit for exception handling,
3632         tolerating NULL object references safely etc.
3633
3634         * cspi/spi_accessible.c: ditto.
3635
3636         * cspi/spi_component.c: ditto.
3637
3638         * cspi/spi_editabletext.c: ditto.
3639
3640         * cspi/spi_hyperlink.c: ditto.
3641
3642         * cspi/spi_hypertext.c: ditto.
3643
3644         * cspi/spi_image.c: ditto.
3645
3646         * cspi/spi_selection.c: ditto.
3647
3648 2001-12-10  Michael Meeks  <michael@ximian.com>
3649
3650         * configure.in: use cspi/libspi.pc.in instead.
3651
3652         * Makefile.am (pkgconfig_DATA): upd. to match.
3653
3654         * test/simple-at.c (report_focus_event): kill hacks around
3655         bad return values, use putenv not setenv
3656
3657         * libspi/desktop.c (impl_desktop_get_child_at_index): don't
3658         fire ChildGone - I killed it.
3659
3660         * libspi/component.c
3661         (impl_accessibility_component_get_extents): remove
3662         bogus return.
3663
3664         * idl/Accessible.idl: kill ChildGone exception.
3665
3666         * cspi/*.[ch]: kill int return from ref / unref.
3667         
3668         * cspi/spi_main.c (cspi_object_add_check): fold into
3669         (cspi_object_add): here.
3670
3671         * cspi/spi_component.c (AccessibleComponent_getExtents):
3672         handle exceptions elegantly.
3673
3674         * cspi/spi-private.h (cspi_check_ev_return),
3675         (cspi_return_if_fail): impl.
3676
3677         * cspi/spi_accessible.c: use extensively.
3678         (AccessibleStateSet_equals): add direct compare check.
3679
3680         * cspi/spi_selection.c: tolerate NULL objs, and check
3681         exceptions before return.
3682
3683         * cspi/spi-util.c (cspi_warn_ev): rename to
3684         (cspi_check_ev): this & don't pass ev in; no point.
3685
3686 2001-12-10  Michael Meeks  <michael@ximian.com>
3687
3688         * test/test-simple.c: use putenv not setenv
3689         (get_environment_vars): more chatty if you're not using
3690         the fun bits.
3691
3692         * test/simple-at.c: do the setenv so more people see the
3693         nice demo easily.
3694
3695 2001-12-10  Bill Haneman <bill.haneman@sun.com>
3696
3697         * libspi/registry.c:
3698         Changed check of CORBA_environment on notification to be a warning
3699         instead of an error for the moment, since we can recover from this
3700         error when caused by a queued notification from a dead app.
3701         
3702         * libspi/value.c:
3703         Fixes for spi_value, use G_TYPE_DOUBLE for atk_value values (as
3704         used by all current implementors of AtkValue), and coerce to
3705         CORBA_float. (Proper general case fix may require change to Value.idl).
3706
3707 2001-12-09  Bill Haneman <bill.haneman@sun.com>
3708
3709         * cspi/spi.h:
3710         * cspi/spi_event.c:
3711         * cspi/spi_accessible.c:
3712         Documentation fixes: added user_data params to documentation for 
3713         listeners and callbacks.  
3714
3715         * cspi/spi_accessible.c: 
3716         Changed AccessibleStateSet_compare to return a
3717         StateSet rather than return the difference set into a third parameter.
3718         
3719         
3720 2001-12-09  Bill Haneman <bill.haneman@sun.com>
3721
3722         * configure.in:
3723         Replace use of AM_PROG_XML_I18N_TOOLS macro with AC_PROG_INTLTOOL.
3724         remove 'dnl' comment line from AC_OUTPUT (autoconf doesn't like
3725         it). 
3726
3727         * Makefile.am:
3728         Remove subdirectory po from SUBDIRS for now.
3729
3730         * at-bridge/bridge.c:
3731         Beefed up a couple of debug printouts.
3732         One-line fix for signal notification name formatting.
3733
3734         * libspi/accessible.c:
3735         Added assertion to spi_accessible_new ().
3736
3737         * libspi/application.c:
3738         Put #ifdef qualifiers around a printf.
3739
3740         * libspi/value.c:
3741         Fixed derivation (from BONOBO_OBJECT to SPI_BASE).
3742
3743         * registryd/Makefile.am:
3744         * util/Makefile.am:
3745         Replaces use of XML_I18N_MERGE_SERVER_RULE with
3746         INTLTOOL_SERVER_RULE macro.
3747
3748         * test/simple-at.c:
3749         Added an event listener for several ATK signals, for
3750         testing and debugging.  Removed a few g_warnings.
3751         Added test output if focussed item implements the Value interface.
3752
3753         * test/test-simple.c:
3754         Added test_value () function (known not to pass at the moment, so
3755         not actually called yet.
3756         
3757 2001-12-08  Michael Meeks  <michael@ximian.com>
3758
3759         * at-bridge/bridge.c (bridge_focus_tracker),
3760         (emit_eventv): fix the same ref. leak.
3761         (register_atk_event_listeners): don't leak.
3762
3763         * cspi/spi-listener-impl.c (cspi_event): more 
3764         protection from client code.
3765
3766         * test/test-simple.c (test_desktop): unref the app.
3767
3768         * test/Makefile.am: upd. TESTS.
3769
3770         * at-bridge/bridge.c (bridge_exit_func): release the registry.
3771
3772         * test/keysynth-demo.c (keysynth_exit): unref the listeners.
3773
3774         * cspi/spi_accessible.c (Accessible_queryInterface): constify.
3775
3776         * cspi/spi_registry.c: constify in strings.
3777         (deregisterGlobalEventListenerAll): don't release the ref.
3778
3779         * cspi/spi.h: start removing redundant / conflicting
3780         gtkdoc comments, making the API readable at a glance :-)
3781         
3782         * cspi/spi_event.c (AccessibleEventListener_unref): impl.
3783
3784         * test/keysynth-demo.c (keysynth_exit, main): upd.
3785
3786         * test/simple-at.c (main, simple_at_exit): upd.
3787
3788         * test/test-simple.c (unutterable_horror): kill.
3789         (utterable_normal_derefs): kill.
3790         (main): upd & do a setenv before gtk_init, so that we
3791         can use memprof - and to save the pain of remembering
3792         this, if we're running under memprof - don't exit.
3793
3794         * cspi/spi_main.c (SPI_exit): return exit status
3795         for cspi.
3796         (SPI_event_quit): impl.
3797         (SPI_event_main): simplify.
3798         (cspi_is_gnome_app): kill.
3799         (SPI_init): kill isGNOMEapp arg.
3800
3801         * at-bridge/bridge.c (register_atk_event_listeners):
3802         re-instate the unref.
3803         (bridge_exit_func): don't re-activate the registry,
3804         protect vs. theoretical re-entry, use the
3805         AT_BRIDGE_SHUTDOWN env. var to determine whether to
3806         assert a clean shutdown - for regression tests.
3807
3808 2001-12-08  Abel Cheung  <maddog@linux.org.hk>
3809
3810         * configure.in: Comment out dummy i18n support for now,
3811           otherwise it fails to build.
3812         * idl/Makefile.am: Add Selection.idl and Hypertext.idl to
3813           EXTRA_DIST. They are missing in tarball.
3814
3815 2001-12-07  Michael Meeks  <michael@ximian.com>
3816
3817         * util/magnifier.c: kill bonobo activation reg. race.
3818
3819         * libspi/component.c
3820         (impl_accessibility_component_get_extents): make it match
3821         it's sig.
3822
3823         * libspi/registry.c (_registry_notify_listeners):
3824         re-remove X headers & reconcile conflicts.
3825         (spi_listener_struct_free): bad conflict resolve.
3826         (impl_accessibility_registry_register_application):
3827         more bad merging fixed.
3828         (impl_accessibility_registry_deregister_application): ditto.
3829         (spi_registry_new): ditto.
3830         (spi_registry_init): don't have an applications field.
3831
3832 [ merge fixups2 branch to here ]
3833 2001-12-07  Michael Meeks  <michael@ximian.com>
3834
3835         * test/simple-at.c (report_focus_event),
3836         (report_focussed_accessible): remove g_warning debug.
3837
3838 2001-12-07  Michael Meeks  <michael@ximian.com>
3839
3840         * test/test-simple.c (validate_tree): comment out some checks.
3841         (test_desktop): app now not registered idly - horay.
3842
3843 2001-12-07  Michael Meeks  <michael@ximian.com>
3844
3845         * cspi/spi_registry.c
3846         (registerAccessibleKeystrokeListener): clean, stop it leaking
3847         great swathes of memory, and device event controller references.
3848         ensure we always pass valid sequences.
3849         (deregisterAccessibleKeystrokeListener): ditto.
3850         (generateKeyEvent): upd.
3851
3852         * at-bridge/bridge.c (bridge_key_listener): handle
3853         registry dead exception gracefully.
3854         (bridge_focus_tracker, emit_eventv): free ev.
3855
3856         * test/simple-at.c (report_focus_event): fix polarity.
3857
3858         * libspi/application.c (notify_listeners): kill the ev
3859         argument, and make sure we init the ev we use.
3860         (spi_application_object_event_listener): split out a chunk
3861         (get_atk_object_ref): here & fixup.
3862         (reverse_lookup_name_for_toolkit_event): make const.
3863         (spi_application_toolkit_event_listener): fixup, kill leaks
3864         ref problems etc.
3865
3866         * at-bridge/bridge.c (register_atk_event_listeners):
3867         don't unref the noop object - causes grief.
3868
3869         * libspi/registry.c: remove the X headers.
3870         turn off the debug churn.
3871
3872         * libspi/accessible.c (spi_accessible_new_return): only
3873         release the ref if we are supposed to [doh]
3874
3875         * test/simple-at.c (report_button_press, report_focus_event):
3876         guard vs. unexpected exit.
3877
3878         * at-bridge/bridge.c (gtk_module_init): prune printf.
3879         (bridge_exit_func): fix app unref.
3880
3881         * libspi/Makefile.am: don't install registry or desktop.h
3882
3883         * libspi/*.h: update includes.
3884
3885         * libspi/application.h: don't include ourself, or
3886         other redundant headers.
3887
3888 2001-12-06  Michael Meeks  <michael@ximian.com>
3889
3890         * libspi/accessible.c
3891         (get_accessible_from_servant): impl.
3892         Upd. all CORBA impl.s to use it killing cut and paste.
3893
3894         * cspi/spi_main.c (cspi_cleanup): guard vs. double
3895         invokes.
3896         (SPI_init): register atexit cleanup handler here.
3897
3898 2001-12-06  Michael Meeks  <michael@ximian.com>
3899
3900         * at-bridge/bridge.c (gtk_module_init): g_error on
3901         activation exception
3902
3903 2001-12-06  Michael Meeks  <michael@ximian.com>
3904
3905         * at-bridge/bridge.c (gtk_module_init): some sort of
3906         confusing merge clash - reverted.
3907         (bridge_idle_init): ditto.
3908
3909         * test/test-simple.c (main, utterable_normal_derefs):
3910         merge from Bill - somehow not committed.
3911
3912 2001-12-06  Michael Meeks  <michael@ximian.com>
3913
3914         * libspi/value.c (spi_value_class_init): upd.
3915         (spi_value_finalize): kill.
3916
3917         * libspi/table.c (spi_table_finalize): kill.
3918         (spi_table_interface_new): upd.
3919         (spi_table_class_init): upd.
3920         (get_table_from_servant): impl.
3921         Upd. all CORBA impl.s to use it killing yet more cut and paste.
3922
3923         * libspi/selection.c (spi_selection_finalize): kill.
3924         (spi_selection_interface_new): upd.
3925         (spi_selection_class_init): upd.
3926         (get_selection_from_servant): impl.
3927         Upd. all CORBA impl.s to use it killing yet more cut and paste.
3928
3929         * libspi/relation.c (spi_relation_finalize): kill.
3930         (spi_relation_class_init, spi_relation_new): upd
3931
3932         * libspi/image.c (spi_image_finalize): kill.
3933         (spi_image_class_init): upd.
3934         (spi_image_interface_new): upd.
3935         (get_image_from_servant): impl.
3936         Upd. all CORBA impl.s to use it killing yet more cut and paste.
3937
3938         * libspi/hyperlink.c (spi_hyperlink_class_init): upd.
3939         (spi_hyperlink_finalize): kill.
3940         (spi_hyperlink_new): upd.
3941         (get_hyperlink_from_servant): impl.
3942         Upd. all CORBA impl.s to use it killing yet more cut and paste.
3943
3944         * libspi/hypertext.c (spi_hypertext_interface_new): upd.
3945         (spi_hypertext_finalize): kill.
3946         (spi_hypertext_class_init): upd.
3947         (get_hypertext_from_servant): impl.
3948         Upd. all CORBA impl.s to use it killing yet more cut and paste.
3949
3950         * libspi/editabletext.c (spi_editable_text_finalize): kill.
3951         (spi_editable_text_interface_new): upd.
3952         (get_editable_text_from_servant): impl.
3953         Upd. all CORBA impl.s to use it killing yet more cut and paste.
3954         
3955         * libspi/text.c (get_text_from_servant): impl.
3956         All impls - update to use it killing more cut and paste,
3957         also fix bad string returns on duff args ( a somewhat
3958         impossible case to handle - but hey ).
3959         (spi_text_construct): impl.
3960         (spi_text_interface_new): upd.
3961         (spi_text_object_finalize): kill.
3962
3963         * libspi/component.c
3964         (accessibility_component_object_finalize): kill.
3965         (spi_component_class_init): upd.
3966         (get_component_from_servant): impl. helper to kill cut & paste.
3967         (impl_accessibility_component_contains): 
3968         (impl_accessibility_component_get_accessible_at_point): 
3969         (impl_accessibility_component_get_position): 
3970         (impl_accessibility_component_get_extents): 
3971         (impl_accessibility_component_get_mdi_z_order): 
3972         (impl_accessibility_component_get_layer): 
3973         (spi_component_interface_new): upd.
3974
3975         * libspi/action.c (spi_action_finalize): kill.
3976         (spi_action_class_init): upd. inherit from SpiObject.
3977         (spi_action_interface_new): upd.
3978         (get_action_from_servant): impl. helper to reduce cut & paste.
3979         (impl_getKeyBinding, impl_getName, impl_doAction),
3980         (impl_getDescription): Use it everywhere.
3981
3982         * cspi/spi_main.c (get_live_refs): a pointer hash.
3983         (spi_object_hash, spi_object_equal): comment out.
3984         There are issues with CORBA object hashing that need
3985         solving.
3986
3987         * libspi/application.c (spi_application_init),
3988         (spi_application_new): upd.
3989
3990         * libspi/accessible.c (spi_accessible_object_finalize): kill.
3991         (spi_accessible_class_init): upd.
3992         s/accessible/object/ in epv methods.
3993
3994 2001-12-05  Bill Haneman <bill.haneman@sun.com>
3995
3996         * at-bridge/bridge.c:
3997         Reorder the bridge initialization into the bridge gtk_module_init,
3998         an immediate call to bridge_register_app, and an idle_add for
3999         register_atk_event_listeners (the only code that *must* wait until
4000         GTK+ is initialized) via bridge_idle_add. Bridge_register_app does
4001         the activation, creates the application's Accessible object, and
4002         queues the bridge_idle_init function.  Restored call to
4003         Accessibility_Registry_deregisterApplication().  
4004         Prior to making this call we obtain a new reference to the
4005         registry, which is a temporary hack that helps us handle apps that
4006         shut down the bonobo mainloop before we get there.
4007
4008         * libspi/registry.c:
4009         Fix string leakage in debug block, and don't segv if a an app
4010         dies before its event notifications have been propagated.
4011
4012         * cpi/spi_util.c:
4013         Modify cspi_check_ev() to call g_warning() rather than g_error(),
4014         as stopgap measure until we get proper exception handling when 
4015         objects die during or before interrogation.  
4016
4017         * cspi/spi_main.c:
4018         * cspi/spi.h:
4019         Moved use of isGNOMEApp flag from SPI_event_main to SPI_init.
4020         Also changed default value of is_gnome_app to TRUE.
4021
4022         * test/simple-at.c:
4023         * test/keysynth-demo.c:
4024         Changed use of SPI_init and SPI_event_main to reflect API change above.
4025
4026         * test/simple-at.c:
4027         Made report_focus_event check the warning value from getName
4028         before reporting on focussed accessible; simplifies handling of
4029         notifications from dead objects.
4030
4031         * test/test-simple.c: (Changes not in this patch since source is
4032         not in CVS ?)
4033         
4034 2001-12-05  Michael Meeks  <michael@ximian.com>
4035
4036         * registryd/registryd.c (main): protect against
4037         bonobo-activation startup race condition.
4038
4039         * cspi/spi_main.c (cspi_object_add_check): cope
4040         with the exception elegantly.
4041
4042         * idl/Accessible.idl: decl. ChildGone
4043
4044         * libspi/desktop.c (spi_desktop_dispose): impl.
4045         (spi_desktop_class_init): upd.
4046         (spi_desktop_add_application),
4047         (spi_desktop_remove_application),
4048         (abnormal_application_termination): impl.
4049         (impl_desktop_get_child_at_index): re-impl.
4050
4051         * libspi/registry.c
4052         (impl_accessibility_registry_deregister_application),
4053         (impl_accessibility_registry_register_application): 
4054         kill excessive debug clutter.
4055
4056         * test/test-simple.c (test_misc): test some NULL
4057         tolerance. (main): upd.
4058
4059         * cspi/spi_main.c (cspi_accessible_is_a): a NULL
4060         implements no interfaces - so let's not crash.
4061
4062         * cspi/spi_accessible.c (Accessible_queryInterface): ditto.
4063
4064         * libspi/accessible.c (spi_accessible_new_return): impl.
4065         helper to calm the cut and paste, to cope with
4066         NULL AtkObjects effectively and efficiently, and to kill
4067         the referencing bugs.
4068
4069         * libspi/table.c (impl_getAccessibleAt),
4070         (impl_getRowHeader, impl_getColumnHeader): upd.
4071
4072         * libspi/hyperlink.c (impl_getObject): upd.
4073
4074         * libspi/accessible.c
4075         (impl_accessibility_accessible_get_child_at_index): upd.
4076
4077         * libspi/component.c
4078         (impl_accessibility_component_get_accessible_at_point): upd.
4079
4080         * test/test-simple.c (test_editable_text, test_text): impl.
4081         some simple tests.
4082
4083         * cspi/spi_editabletext.c
4084         (AccessibleEditableText_insertText): constify.
4085
4086         * test/test-simple.c (focus_me): make more robust.
4087
4088         * libspi/accessible.c: remove some printfs in methods that
4089         we test and work fine, so we can get a clean tree dump.
4090
4091         * test/test-simple.c (validate_accessible),
4092         (validate_tree): make tree dumping pretty too.
4093
4094         * at-bridge/bridge.c (bridge_signal_listener): upd. so
4095         it builds without debug on.
4096
4097         * test/test-simple.c (validate_accessible): fix the most
4098         ludicrous bug.
4099
4100         * cspi/spi_main.c (spi_object_release): leave the nicely
4101         blanked memory around if in debug mode.
4102
4103         * cspi/spi-listener-impl.c (cspi_event): use add_check.
4104
4105 [committed to fixups2]
4106 2001-12-05  Michael Meeks  <michael@ximian.com>
4107
4108         * libspi/editabletext.c
4109         (spi_editable_text_class_init): g_type_class_peek_parent,
4110         not interface peek - so we finalize cleanly.
4111
4112         * libspi/accessible.c (spi_accessible_new): kill debug.
4113
4114         * test/test-simple.c (validate_accessible): fix ref.
4115         leak, print strings before freeing them; sigh, comment a
4116         chunk out due to strangeness.
4117         (validate_tree): unref the child after use.
4118
4119         * cspi/spi_component.c (AccessibleComponent_getLayer):
4120         add missing break statement, switch on zlayer not the
4121         uninitialized retval.
4122
4123         * cspi/spi_main.c (cspi_object_add): add assert, local ref
4124         before (possibly re-entering) remote unref.
4125
4126         * test/simple-at.c (main): unref the desktop.
4127
4128         * cspi/spi_accessible.c (cspi_accessible_is_a): move 
4129         into:
4130         
4131         * cspi/spi_main.c (cspi_accessible_is_a): here to 
4132         isolate bonobo API usage more.
4133
4134         * libspi/registry.c (impl_accessibility_registry_register_application): 
4135         prune bogus comment.
4136
4137 2001-12-04  Michael Meeks  <michael@ximian.com>
4138
4139         * test/test-simple.c (validate_tree): upd.
4140         IndexInParent check to make it more lucid.
4141         (validate_accessible): dump the tree.
4142
4143         * libspi/accessible.c (de_register_public_ref),
4144         (get_public_refs): impl.
4145         (spi_accessible_new): make more efficient & intuitive.
4146         Now IndexInParent check works.
4147
4148 2001-12-04  Michael Meeks  <michael@ximian.com>
4149
4150         * cspi/spi-util.h: remove.
4151
4152         * cspi/spi.h: move SPI_freeString here
4153
4154         * libspi/component.c (impl_accessibility_component_get_layer): 
4155         warning fixage.
4156         (impl_accessibility_component_get_mdi_z_order): ditto,
4157         return -1 on error - is this ok ?
4158
4159         * test/test-simple.c (test_application): impl.
4160
4161         * cspi/spi_accessible.c (Accessible_getApplication),
4162         (Accessible_isApplication): impl.
4163
4164         * libspi/registry.c (spi_listener_struct_free): release
4165         the CORBA reference too.
4166
4167         * libspi/accessible.c
4168         (impl_accessibility_accessible_get_parent): fix ref leak.
4169
4170         * libspi/registry.c (spi_registry_new): make the registry
4171         immortal - we don't want it to go away ever.
4172
4173         * libspi/application.c
4174         (spi_accessible_application_finalize): impl. cleanup.
4175
4176         * cspi/spi_registry.c
4177         (deregisterGlobalEventListenerAll),
4178         (deregisterGlobalEventListener),
4179         (deregisterAccessibleKeystrokeListener): fix ref leak.
4180
4181         * cspi/spi_main.c (SPI_init): remove redundant ref.
4182
4183         * test/test-simple.c (unutterable_horror): impl. to force a
4184         clean shutdown.
4185         (main): use it.
4186
4187         * libspi/registry.c
4188         (impl_accessibility_registry_deregister_application): release
4189         the application when we de-register it.
4190
4191         * at-bridge/bridge.c (bridge_exit_func): comment out shutdown
4192         until we have the infastructure to get it right.
4193
4194 2001-12-03  Michael Meeks  <michael@ximian.com>
4195
4196         * libspi/Makefile.am: only build eventlistener.[ch]
4197
4198         * libspi/accessible.c
4199         (impl_accessibility_accessible_get_child_at_index): don't leak.
4200
4201         * at-bridge/bridge.c (bridge_exit_func): cope with an exit
4202         before we hit the idle handler.
4203
4204         * cspi/spi-util.c (cspi_check_ev): g_error is far nicer for
4205         debugging than exit.
4206
4207         * at-bridge/bridge.c (bridge_focus_tracker): fix ref issue.
4208
4209         * libspi/listener.c (impl_notify_event): check source
4210         not NIL before unref.
4211
4212         * libspi/registry.c (impl_registry_notify_event): ditto.
4213
4214         * libspi/eventlistener.c
4215         (impl_accessible_event_notify_event): unref the source.
4216
4217         * libspi/accessibleeventlistener.c
4218         (impl_accessible_event_notify_event): unref the source.
4219
4220         * idl/Event.idl: remove 'hash_id' attribute - of no
4221         concievable use.
4222
4223         * libspi/application.c (notify_listeners): upd list
4224         iteration & sig.
4225         (spi_application_object_event_listener), 
4226         (spi_application_toolkit_event_listener): upd to do correct
4227         CORBA ref counting.
4228
4229         * libspi/registry.c
4230         (_registry_notify_listeners): update.
4231         (parse_event_type): this method also leaks like a sieve.
4232         (impl_accessibility_registry_deregister_global_event_listener): 
4233         fix ETYPE_WINDOW case.
4234
4235         * libspi/application.c
4236         (impl_accessibility_application_register_object_event_listener): 
4237         kill leak.
4238
4239         * libspi/hyperlink.c (impl_getObject): fix ref mistake.
4240
4241         * libspi/hypertext.c (impl_getLink): ditto.
4242
4243         * cspi/spi_main.c (cspi_object_add): remove
4244         bogus CORBA_Object_duplicate.
4245
4246         * cspi/spi-listener-impl.c (cspi_event): dup/ref
4247         on the object_add.
4248
4249         * cspi/spi_accessible.c
4250         (Accessible_getRelationSet): fix leak / referencing issue.
4251
4252         * cspi/spi_main.c (spi_object_hash, spi_object_equal): impl.
4253         (cspi_object_add, cspi_object_unref): upd.
4254         (spi_object_release, get_live_refs): impl.
4255         (cspi_cleanup): simplify.
4256
4257         * *.[ch]: s/boolean/SpiBoolean/
4258
4259         * cspi/spi_accessible.c (role_names): actualy order so it
4260         corresponds with the enum !
4261
4262         * test/test-simple.c (test_roles): check some role strings
4263         vs. enums to detect offset errors.
4264
4265 2001-12-01  Michael Meeks  <michael@ximian.com>
4266
4267         * cspi/spi_main.c (cspi_object_add_check): impl. helper.
4268
4269         * cspi/spi_accessible.c (Accessible_getChildAtIndex):
4270         check ev before 
4271         (Accessible_getChildAtIndex): use cspi_add_check so we
4272         check the ev before using a (possibly) invalid value.
4273
4274         * libspi/accessible.c
4275         (impl_accessibility_accessible_get_parent): don't segv
4276         on a NULL parent.
4277
4278         * at-bridge/bridge.c (gtk_module_init): upd.
4279         (bridge_property_event_listener): don't leak strings
4280         and events !
4281         (bridge_state_event_listener),
4282         (bridge_property_event_listener): don't use a static
4283         buffer in case of recursive event emission &
4284         re-enterancy - split out the swathe of cut and paste
4285         into:
4286         (emit_eventv): and fix 2 ref leaks here & comply to the
4287         coding style.
4288         (bridge_register_app): rename to 
4289         (bridge_idle_init): this and kill arg parsing, split
4290         various inits & bonobo-activation registration to module
4291         init time, kill referencing error.
4292         (bridge_exit_func): fix the same leak.
4293         (bridge_focus_tracker): don't leak event structures
4294         and strings.
4295         (bridge_signal_listener): more leakage and cut & paste
4296         fixage.
4297         (bridge_key_listener): return the result - FIXME is
4298         this polarity correct ?
4299         (accessibility_keystroke_from_atk_key_event): rename
4300         (accessibility_init_keystroke_from_atk_key_event): and stop
4301         leakage.
4302         (gtk_module_init): return a value - not that it is checked by
4303         Gtk - but hey.
4304         (bridge_key_listener): register my horror at casting between
4305         IDL defined structs.
4306         (bridge_get_registry): kill - not used.
4307
4308         * cspi/spi_accessible.c (Accessible_getRole): make return const.
4309
4310         * test/test-simple.c (test_roles): impl.
4311         (test_desktop, validate_accessible, validate_tree): impl.
4312
4313         * cspi/spi_accessible.c (role_names): fixup bogus
4314         MAX_ROLES setup, make constants const for efficient linkage
4315         (AccessibleRole_getName): conform to coding style, make
4316         return 'const'
4317
4318 2001-11-30  Michael Meeks  <michael@ximian.com>
4319
4320         * cspi/spi.h: add missing prototype.
4321
4322         * libspi/registry.c (spi_listener_struct_new): fix sig.
4323
4324         * test/Makefile.am: add test-simple
4325
4326         * test/test-simple.c: add
4327
4328         * test/test.sh: add.
4329
4330         * cspi/spi_main.c (SPI_init): make SPI_inited module global,
4331
4332         * at-bridge/bridge.c (gtk_module_init): don't do an idle init,
4333         do it straight - since otherwise we often get an activation race.
4334
4335 [ work before Bill duplicated a chunk of it ... ]
4336 2001-11-30  Michael Meeks  <michael@ximian.com>
4337
4338         * libspi/keystrokelistener.c
4339         (spi_keystroke_listener_class_init): fixup arg
4340         count (doh).
4341
4342         * libspi/eventlistener.c
4343         (spi_event_listener_class_init): ditto.
4344
4345         * tests/test.sh: add.
4346
4347         * cspi/spi-listener-impl.h: update macros.
4348
4349         * cspi/spi-listener-impl.c
4350         (cspi_event_listener_remove_callback): add
4351         correct pre-conditions.
4352
4353         * cspi/spi_main.c (SPI_exit): guard vs. double
4354         exits, exit the mainloop nicely.
4355         (SPI_event_main): make more sense.
4356         (SPI_init): move the atexit evilness here so we
4357         always do it (yuck).
4358         (SPI_event_main): upd.
4359
4360         * test/simple-at.c: update for listener changes.
4361
4362         * registryd/registryd.c (main): prune kruft.
4363
4364         * libspi/libspi.h: upd.
4365
4366         * libspi/eventlistener.[ch]: rename broken macros.
4367
4368         * libspi/accessibleeventlistener.[ch]: remove.
4369
4370         * libspi/*.[ch]: IS_SPI_... -> SPI_IS_...
4371
4372         * test/test-simple.c: Add - automated tests.
4373
4374         * cspi/spi-listener-impl.c (cspi_event),
4375         (cspi_key_event): add user_data to invoke.
4376         (cspi_keystroke_listener_finalize): impl.
4377         (cspi_keystroke_listener_class_init): upd.
4378
4379         * cspi/spi_event.c
4380         (createAccessibleEventListener),
4381         (AccessibleEventListener_addCallback),
4382         (createAccessibleKeystrokeListener),
4383         (AccessibleKeystrokeListener_addCallback): upd.
4384
4385         * libspi/deviceeventcontroller.c
4386         (spi_device_event_controller_check_key_event): add public proto.
4387
4388         * libspi/registry.c
4389         (impl_accessibility_registry_deregister_global_event_listener): 
4390         always init listeners.
4391         (_registry_notify_listeners): yes it is.
4392
4393         * cspi/spi-listener-impl.c (cspi_key_event): 
4394         move debug to here.
4395         (cspi_event_listener_finalize): impl.
4396         (cspi_event_listener_class_init): hook up.
4397         (event_handler_new, event_handler_free),
4398         (event_list_remove_by_callback): impl.
4399         (cspi_event_listener_remove_callback),
4400         (cspi_keystroke_listener_remove_callback),
4401         (cspi_keystroke_listener_add_callback),
4402         (cspi_event_listener_add_callback): upd.
4403
4404         * libspi/keystrokelistener.c
4405         (keystroke_listener_object_finalize): kill
4406         (spi_keystroke_listener_class_init): upd.
4407         (spi_keystroke_listener_add_callback),
4408         (spi_keystroke_listener_remove_callback): kill,
4409         use signals.
4410         (impl_key_event): prune drasticaly.
4411
4412         * libspi/eventlistener.c
4413         (spi_event_listener_add_callback),
4414         (spi_event_listener_remove_callback): kill, use
4415         signals.
4416         (impl_accessible_event_notify_event): upd.
4417         (spi_event_listener_object_finalize): remove.
4418
4419         * libspi/Makefile.am: use eventlistener.[ch]
4420
4421 2001-12-04  Bill Haneman  <bill.haneman@sun.com>
4422
4423         * libspi/registry.c (_registry_notify_listeners):
4424         Changed listener loop iteration to use preferred convention.
4425         Got rid of string memory leaks caused be calling g_strconcat
4426         inside function calls.
4427
4428         * libspi/registry.c (parse_event_type):
4429         Stopped g_strconcat memory leaks, free the g_strsplit return,
4430         g_strdup the split pieces when used, etc.
4431
4432 2001-12-04  Bill Haneman  <bill.haneman@sun.com>
4433
4434         * idl/State.idl: 
4435         Change method 'compare' to return a 'difference set' rather than
4436         taking a StateSet as an out parameter (more Java-friendly).
4437
4438         * idl/Accessible.idl:
4439         Added CORBA struct 'BoundingBox', to faciliate API changes below:
4440         
4441         * idl/Component.idl:
4442         * idl/Image.idl:
4443         Changed methods 'getExtents' and 'getImageExtents' in these
4444         interfaces to return a BoundingBox structure.  
4445         (getPosition and getSize are redundant and possibly should be
4446         removed, rather than creating a corresponding Point struct.)
4447
4448         * cspi/spi_component.c:
4449         Modify implementation of getExtents to reflect the above IDL
4450         change.
4451         
4452         * cspi/spi_image.c:
4453         * cspi/spi.h:
4454         Add (missing) AccessibleImage_getExtents () API.
4455
4456         * docs/reference/cspi/at-spi-cspi-sections.txt:
4457         Added AccessibleImage_getImageExtents () to docs.
4458         
4459 2001-12-03  Bill Haneman  <bill.haneman@sun.com>
4460
4461         * idl/Component.idl:
4462         Added two methods, getLayer () and getMDIZOrder (), to reflect
4463         the new ATK methods atk_object_get_layer and
4464         atk_object_get_mdi_z_order. (Which arguably should be part of the
4465         AtkComponent API and AtkObject).  Also added an enum,
4466         ComponentLayer, for the first method's return value.
4467
4468         * libspi/component.c:
4469         Added implementations for these methods.
4470
4471         * cspi/spi_component.c:
4472         * cspi/spi.h:
4473         Added cspi binding methods for above, 
4474         AccessibleComponent_getLayer() and
4475         AccessibleComponent_getMDIZOrder().
4476         Added cspi enum 'AccessibleComponentLayer'.
4477
4478         * docs/reference/cspi/at-spi-cspi-sections.txt:
4479         Added above methods to docs.
4480
4481         * cspi/spi-impl.h:
4482         * cspi/spi*.[ch]:
4483         Changed typedef for 'boolean' type (and all references to it) to
4484         SPIBoolean, to avoid keyword clashes with C++.
4485
4486         * test/simple-at.c:
4487         Changed usages of 'boolean' to SPIBoolean.
4488
4489         * test/keysynth-demo.c:
4490         Changed usages of 'boolean' to 'gboolean' (since this is a gnome
4491         app), except where SPIBoolean is required by the callbacks API.
4492         
4493 2001-12-02  Bill Haneman  <bill.haneman@sun.com>
4494
4495         * cspi/spi_registry.c:
4496         Removed obsolete X event loop for passive keygrabs (which now
4497         lives in libspi).
4498
4499         * registryd/registryd.c:
4500         Removed unnecessary call to gdk_init() [cruft]. This also allows
4501         removal of requisite gdk-2.0 from REGISTRYD_LIBS/CFLAGS in
4502         * configure.in.
4503
4504 2001-11-28  Bill Haneman  <bill.haneman@sun.com>
4505
4506         * docs/reference/cspi:
4507         Included docs for SPI_freeString in generated documentation.
4508
4509         * cspi/spi-util.c:c
4510         Renamed spi_freeString to SPI_freeString, for consistency.  Added
4511         documentation for this function.
4512
4513         * cspi/spi-util.h:
4514         Renamed spi_freeString to SPI_freeString, for consistency.  
4515         Removed obsolete method declaration string_from_corba_string.
4516
4517         * test/keysynth-demo.c:
4518         Small tweak to comments.
4519
4520         * test/simple-at.c:
4521         Stopped leaking the strings returned from CSPI. 
4522
4523 2001-11-28  Bill Haneman  <bill.haneman@sun.com>
4524
4525         Merged Michael's branch (see his ChangeLog entries below).
4526         
4527         * at-bridge/bridge.c: Explicitly hold a ref to the registry while
4528         bridge is alive, release on exit.
4529         
4530         * cspi/spi-listener-impl.c (cspi_event_listener_add_callback):
4531         Fix type check macro.
4532         
4533         * cspi/spi_event.c:
4534         Added AccessibleKeystrokeListener_unref() method to reduce leakage.
4535         
4536         * cspi/spi_main.c: 
4537         Added is_gnome_app static, and method cspi_is_gnome_app(), 
4538         so we can call the appropriate shutdown routine at exit in SPI_exit.
4539         
4540         * cspi/spi_main.c (cspi_object_ref):
4541         Duplicate the corba object passed in, since we're keeping it around.
4542         
4543         * cspi/SPI_exit.c, cspi_cleanup:
4544         Moved the releasing of the live refs to its own function, so we
4545         can put it in g_atexit ().  Call the appropriate shutdown API
4546         depending on whethe calling client is a gnome app or not
4547         (bonobo_main_quit or CORBA_ORB_shutdown).
4548         
4549         * cspi/spi_registry.c (deregisterGlobalEventListenerAll):
4550         Unref the listener when this method is called, after
4551         deregistration.  Updated the API docs to note this behavior.
4552
4553         * libspi/accessible.c (impl_get_parent, impl_get_child_at_index):
4554         Bugfixes: Ref the bonobo object when returning a parent or child 
4555         reference, or an AccessibleRelation.  Generally made sure
4556         BonoboObject refcount is incremented whenever we return an
4557         Accessible.
4558
4559         * libspi/accessibleeventlistener.c (spi_event_listener_class_init):
4560         Fixed typo/bug in signal declaration.
4561         
4562         * libspi/accessibleeventlistener.h:
4563         Fixed a type macro.
4564
4565         * libspi/application.c (spi_application_new):
4566         Fixed leak in initialization.
4567
4568         * libspi/desktop.c:
4569         Remembered to increment bonobo-object refcount when returning
4570         children (applications) from desktop object.
4571         Added (empty) finalize method.
4572
4573         * libspi/deviceeventcontroller.c:
4574         Hold a ref to listeners inside DEControllerKeyListeners.
4575         Added dec_key_listener_free() method.  Use prepend instead of
4576         append in key_listener list.  Fixed some refcount madness and
4577         leaks in the listener registration/deregistration - deregistration
4578         now calls dec_key_listener_free() on listeners, and on the
4579         temporarily constructed dec_key_listener() used to perform the search/match.
4580
4581         * libspi/hypertext.c (spi_hypertest_finalize):
4582         Fixed 'double unref' of AtkObject held by parent SpiAccessibleText
4583         class.  Also fixed spi_hypertext_interface_new() and
4584         SpiHypertextClass.  Fixed a couple of paren-whitespace formatting bugs.
4585
4586         * libspi/hypertext.h: 
4587         Removed pointless and duplicate AtkObject pointer from
4588         SpiHypertextClass.
4589
4590         * libspi/keystrokelistener.c:
4591         Fixed incorrect type of keystroke_listener_parent_class,
4592         renamed keystroke_listener_object_finalize to
4593         spi_keystroke_listener_object_finalize.
4594         Fixed typo in signal declaration
4595         (spi_keystroke_listener_class_init).
4596
4597         * libspi/registry.c:
4598         Added funcsions spi_listener_struct_new() and
4599         spi_listener_struct_free() to help with memory management issues.
4600         We also now use these methods instead of gnew + poking stuff into
4601         the struct, and to decrement listener counts/free the listeners
4602         when deregistering them.
4603         Fix more refcount bugs in getDesktop() and
4604         getDeviceEventController().  
4605
4606         * test/simple-at.c:
4607         De-ref the desktop after enumerating the applications.  Explicitly
4608         decrement the refcounts on the created listeners on exit (using
4609         _unref for keystroke listeners, and via the
4610         deregisterGlobalEventListenerAll command for other event
4611         listeners).
4612         
4613 2001-11-27  Michael Meeks  <michael@ximian.com>
4614
4615         * cspi/spi-listener.h: fixup enum.
4616
4617 2001-11-27  Michael Meeks  <michael@ximian.com>
4618
4619         * cspi/spi-listener-impl.c (cspi_event_listener_new),
4620         (cspi_keystroke_listener_new): Use the cspi variants.
4621
4622 2001-11-26  Michael Meeks  <michael@ximian.com>
4623
4624         * test/keysynth-demo.c: fix 2 compile warnings, missing
4625         type in decl. etc.
4626
4627         * test/simple-at.c (report_focussed_accessible),
4628         (report_focus_event, report_button_press),
4629         (check_property_change, is_command_key),
4630         (report_ordinary_key_event, report_command_key_event): upd.
4631
4632         * util/mag_client.h: include pre-requisites.
4633
4634         * libspi/accessibleeventlistener.c
4635         (spi_event_listener_object_finalize): free any lingering
4636         callbacks.
4637         
4638         * libspi/keystrokelistener.c
4639         (keystroke_listener_object_finalize): ditto.
4640
4641         * cspi/spi-listener-impl.[ch]: Add to implement cspi style
4642         callbacks, with cspi types.
4643         
4644         * cspi/spi_event.c (createAccessibleEventListener): chain to
4645         (AccessibleEventListener_addCallback): here.
4646         (createAccessibleKeystrokeListener): chain to 
4647         (AccessibleKeystrokeListener_addCallback): here.
4648
4649         * libspi/keystrokelistener.c
4650         (spi_keystroke_listener_class_init): add signal.
4651         (impl_key_event): emit the event.
4652         (boolean_handled_accumulator): impl.
4653         (marshal_BOOLEAN__POINTER): add, gack.
4654
4655         * libspi/accessibleeventlistener.c
4656         (spi_event_listener_class_init): add signal.
4657         (impl_accessible_event_notify_event): emit the signal &
4658         make the loop efficient.
4659         (spi_event_listener_add_callback): prepend the callback.
4660
4661         * libspi/accessibleeventlistener.h: add an 'event' signal,
4662         decl type on callback.
4663
4664         * libspi/keystrokelistener.h: ditto.
4665
4666         * cspi/spi-listener.h: make methods typesafe and
4667         make them use the new event typedefs.
4668
4669         * test/simple-at.c (report_focussed_accessible):
4670         include mag_client.h
4671         Use *(void *)text_interface not the other thing.
4672         
4673         * configure.in: add gtk to registryd bits - since we use
4674         gdk there ( why ? )
4675
4676         * util/magnifier.c: include libbonobo.h
4677         
4678 2001-11-25  Bill Haneman  <bill.haneman@sun.com>
4679
4680         * test/keysynth-demo.c:
4681         Turned this into a simple scanning keyboard, to demonstrate the
4682         use of g_timeout_add () as a means of creating timers for
4683         scanning, and the use of GtkStyle for visually indicating when
4684         virtual keyboard elements are selected.
4685
4686         keysynth-demo now listens to any keyboard keys with zero-valued
4687         keycodes (i.e. 'unused' keys) and interprets them as
4688         single-switches.
4689
4690         Reworked the shiftlatch code so that shift-down state isn't held
4691         for long periods (it's only synthesized immediately prior to
4692         the keysynth event it's modifying).  Note that shiftlatch in this
4693         demo is a convenience, not intended to take the place of AccessX 
4694         which is the better choice for getting 'sticky' modifier keys.
4695
4696         * libspi/deviceeventcontroller.c:
4697         * at-bridge/bridge.c:
4698         * cspi/spi_registry.c:
4699         Removed some debug print stuff, and put other verbosity in #ifdef
4700         blocks.
4701
4702         * util/magnifier.c:
4703         * util/mag_image.h:
4704         Implemented some more of the magnifier IDL for the simple
4705         magnifier: namely, getZoomRegionParams. 
4706         Added mag_x and mag_y members to MagnifierData struct, aid of this
4707         implementation.
4708         Added GtkWindow::realize signal handler to magnifier, to keep it
4709         from receiving keyboard focus from the WM.
4710
4711 2001-11-23  Mark McLoughlin  <mark@skynet.ie>
4712
4713         * cspi/spi-private.h: my guess at what michael forgot
4714         before he ran off to NZ :-)
4715
4716 2001-11-23  Michael Meeks  <michael@ximian.com>
4717
4718         * cspi/spi_event.c (AccessibleEventListener_removeCallback):
4719         comment out non existant method invoke so we link.
4720
4721         * cspi/spi-util.c (spi_warn_ev): conform to gtk+ style,
4722         use bonobo_exception_get_text for more friendly warnings.
4723
4724         * cspi/spi.c (Obj_Add): move into spi_main & rename
4725         spi_object_add; kill spi.c
4726
4727         * cspi/spi_registry.c
4728         (deregisterGlobalEventListener),
4729         (deregisterGlobalEventListenerAll),
4730         (registerGlobalEventListener): fix exception leaks.
4731
4732         * cspi/spi_main.c (spi_exception): impl. helper, so we
4733         don't leak exceptions.
4734
4735         * cspi/spi_selection.c
4736         (AccessibleSelection_deselectSelectedChild): return the
4737         success state.
4738
4739         * cspi/spi_main.c (spi_ev): impl; hack - gack.
4740         (spi_registry): ditto.
4741         (SPI_init): guard against double inits.
4742
4743         * cspi/*.c: use spi_ev (), and spi_registry () where
4744         appropriate - a temporary hack until we have something
4745         better. Use spi_object_add
4746
4747 2001-11-22  Michael Meeks  <michael@ximian.com>
4748
4749         * cspi/Makefile.am: re organise, install the headers.
4750
4751         * cspi/*.h: add G_BEGIN/END_DECLS
4752
4753 2001-11-22  Bill Haneman  <bill.haneman@sun.com>
4754
4755         * test/simple-at.c:
4756         Added non-preemptive keylistener for key events with no modifiers
4757         and shift-only modifier.
4758
4759         * libspi/keystrokelistener.c:
4760         Removed some verbose diagnostics printout.
4761
4762         * cspi/spi_registry.c:
4763         Fixed a bug that caused all key listeners to be registered as
4764         pre-emptive.
4765         
4766         * libspi/deviceeventcontroller.c:
4767         Fixed bug that caused XGrabKey (preemptive key grab) to be called
4768         for non-preemptive key masks.
4769
4770
4771 2001-11-22  Bill Haneman  <bill.haneman@sun.com>
4772
4773         * docs/reference/idl/at-spi-idl-docs.sgml:
4774         * docs/reference/idl/at-spi-idl-sections.txt:
4775         * docs/reference/idl/at-spi-idl-overrides.txt:
4776         Added missing files.
4777
4778         * docs/reference/Makefile.am:
4779         removed idl from SUBDIRS until we can figure a way to get gtk-doc
4780         to scan the IDL files :-(
4781
4782         * docs/reference:
4783         * docs/cspi:
4784         * docs/idl:
4785         Added .cvsignore files.
4786         
4787 2001-11-21  Bill Haneman  <bill.haneman@sun.com>
4788
4789         * libspi/deviceeventcontroller.c:
4790         * libspi/keystrokelistener.c:
4791         * cspi/spi_event.c:
4792         * cspi/spi_registry.c:
4793         Added filters for KeySets, KeyEventSeq, and event types to key
4794         event dispatching, so listeners should only receive those events
4795         that they requested :-)
4796
4797 2001-11-21  Bill Haneman  <bill.haneman@sun.com>
4798
4799         * configure.in:
4800         * docs/Makefile.am:
4801         * docs/reference:
4802         * docs/reference:Makefile.am:
4803         * docs/reference/cspi:
4804         * docs/reference/cspi:Makefile.am:
4805         * docs/reference/cspi:tmpl:
4806         * docs/reference/cspi:tmpl:*.sgml:
4807         * docs/reference/idl:
4808         * docs/reference/idl:Makefile.am:
4809         * docs/reference/idl:at-spi-idl-sections.txt:
4810         * docs/reference/idl:at-spi-idl-docs.sgml:
4811         * docs/reference/idl:tmpl:
4812         * docs/reference/idl:tmpl:*.sgml:
4813
4814         Restructured docs directory to allow separate 'reference' docs
4815         section, and forked idl and cspi docs.  Added the sgml template
4816         files to CVS.  Added the first sections/structural sgml for the
4817         IDL docs.
4818
4819 2001-11-21  Laszlo Peter  <laca@ireland.sun.com>
4820
4821         * configure.in, libspi/Makefile.am: find libXtst.
4822
4823 2001-11-21  Michael Meeks  <michael@ximian.com>
4824
4825         * test/accessx-gui.c: s/spi_value/value/ - doh.
4826
4827         * libspi/base.[ch]: add.
4828
4829 2001-11-18  Bill Haneman <bill.haneman@sun.com>
4830
4831         * idl/Accessible.idl:
4832         * idl/Application.idl:
4833         * idl/Registry.idl:
4834         * idl/Action.idl:
4835         Started gtk-doc cleanup on IDL.
4836
4837         * libspi/deviceeventcontroller.c:
4838         Added and connected non-preemptive key notification from the
4839         toolkits (in addition to the pre-emptive support from XServer
4840         which we had before, but which causes 'focus flashing').  Filters
4841         are presently limited to key modifiers and global/non-global,
4842         KeySets are presently ignored, as are KeyEvent masks.
4843
4844         Fixed naughtiness in dec_key_listener_new(), we copy the CORBA
4845         structs into the persistant structure rather than just storing
4846         pointers to things that might not persist across servant
4847         invocations.
4848
4849         The XGrabKey call now does async keygrabs, because synchronous
4850         ones were deadlocking with GDK_event code in a very nasty way.
4851
4852         Added boolean to internal method notify_keylisteners, to indicate
4853         whether the event came from the 'toolkit source' or the 'global
4854         (XServer) source' - this is used in the notification process to
4855         determine which listeners to send the event to.
4856
4857         deviceeventcontroller.c is now warning-free.
4858         
4859         * libspi/registry.c:
4860         Fixed regression in application de-registration.
4861         Also fixed some really brain-dead weirdness having to do with
4862         event dispatching - event structs are now duplicated before being
4863         re-marshalled in the dispatch to listeners.  This also fixes a
4864         Solaris build problem.
4865         
4866         
4867 2001-11-20  Michael Meeks  <michael@ximian.com>
4868
4869         * libspi/registry.c
4870         (impl_accessibility_registry_deregister_global_event_listener): 
4871         segv. protection.
4872
4873         * libspi/deviceeventcontroller.c
4874         (spi_device_event_controller_check_key_event): return
4875         FALSE on no virtual method.
4876
4877         * libspi/*..h: make includes work on a correctly pathed install.
4878
4879         * libspi/*.h: include glib/gmacros.h, use G_BEGIN / END _DECLS.
4880
4881         * libspi/application.h: kill unused ( and whacked out )
4882         gboolean *spi_application_set_id (AtkObject *app, long id);
4883
4884 2001-11-20  Michael Meeks  <michael@ximian.com>
4885
4886         * libspi/*.[ch]: further convert to bonobo's type func
4887         macros, remove redundnant casts etc.
4888
4889         * libspi/text.c s/accessibility_text/spi_text/g,
4890         re-order to de-cruft.
4891
4892         * libspi/hypertext.c: re-order to kill a huge slew
4893         of redundant forward decls.
4894
4895         * libspi/relation.c: ditto.
4896
4897         * libspi/image.c: ditto.
4898
4899         * */.cvsignore: update
4900         
4901 2001-11-20  Michael Meeks  <michael@ximian.com>
4902
4903         * libspi/deviceeventcontroller.c
4904         (_controller_register_with_devices): use g_getenv,
4905         kill stdlib.h include.
4906
4907         * libspi/keystrokelistener.c
4908         (spi_keystroke_listener_get_type): kill
4909         (spi_keystroke_listener_class_init),
4910         (spi_keystroke_listener_init): rename to this.
4911
4912         * libspi/text.c (impl_getAttributes): fix warning / bug.
4913
4914         * libspi/*.[ch]: more headers, includes and over commenting.
4915         
4916 2001-11-20  Michael Meeks  <michael@ximian.com>
4917
4918         * libspi/*.[ch]: fixup headers, includes and over commenting.
4919
4920         * libspi/image.c (impl__get_imageDescription): const
4921         correctness warning fix. remove redundant casting.
4922
4923         * libspi/table.c (impl_getRowDescription): ditto.
4924         (impl_getColumnDescription): ditto.
4925
4926         * libspi/libspi.h: add.
4927
4928 2001-11-19  Michael Meeks  <michael@ximian.com>
4929
4930         * libspi/editabletext.c (impl_setAttributes): fix warnings.
4931
4932         * libspi/component.c (accessibility_component_get_type): 
4933         rename to (spi_component_get_type): and macroify.
4934         (accessibility_component_init): rename to
4935         (spi_component_init): this
4936         (accessibility_component_class_init): rename to
4937         (spi_component_class_init): this
4938
4939         * libspi/action.c (spi_action_get_type): kill, use the macro.
4940
4941         * libspi/deviceeventcontroller.c (_compare_listeners): re-order
4942         to avoid prototype.
4943
4944         * libspi/application.c (spi_application_object_event_listener),
4945         (impl_accessibility_application_register_object_event_listener):
4946         warning fixes / const understanding updates.
4947
4948         * libspi/accessible.c (impl_accessibility_accessible_get_relation_set):
4949         warning fixes.
4950
4951 2001-11-18  Bill Haneman <bill.haneman@sun.com>
4952
4953         * libspi/spi_accessible.c: Added docs and C bindings for
4954         AccessibleStateSet. (No implementations yet).  Documentation
4955         coverage for C bindings now 100%. Made docs for event listeners
4956         more explicit.
4957         
4958         * idl/Registry.idl:
4959         Added methods 
4960             boolean notifyListenersSync (in DeviceEventListener listener,
4961                                      in DeviceEvent event);
4962
4963             oneway void notifyListenersAsync (in DeviceEventListener listener,
4964                                           in DeviceEvent event);
4965
4966         Added DeviceEventListener and DeviceEvent structs (may deprecate
4967         KeyStroke and KeystrokeListener in favor of this generic
4968         event/listener framework for devices).
4969
4970         * libspi/deviceeventcontroller.c:
4971
4972         Changed some key listener code to take masks, etc., and paved the
4973         way for integration of toolkit/non-preemptive key events. Changed
4974         signatures of some internal methods.
4975
4976         * at-bridge/bridge.c:
4977         Fixed regression connecting to interface signals, apparently
4978         caused by GTK+ changes.
4979
4980         Added an internal bridge_state_listener to deal with
4981         property-change:accessible-state signals.
4982
4983         Changed the key_listeners GList to store structs (including masks,
4984         etc.) instead of just CORBA_Objects (required for full
4985         implementation of key listener API).
4986
4987         Connected the bridge to all currently supported Atk signals.
4988         Events now supported: 
4989             object:property-change
4990             object:property-change:accessible-name
4991             object:property-change:accessible-state
4992             object:property-change:accessible-description
4993             object:property-change:accessible-parent
4994             object:property-change:accessible-value
4995             object:property-change:accessible-role
4996             object:property-change:accessible-table-caption
4997             object:property-change:accessible-table-column-description
4998             object:property-change:accessible-table-column-header
4999             object:property-change:accessible-table-row-description
5000             object:property-change:accessible-table-row-header
5001             object:property-change:accessible-table-summary
5002             object:children-changed
5003             object:visible-data-changed
5004             object:selection-changed
5005             object:text-selection-changed
5006             object:text-changed
5007             object:text-caret-moved
5008             object:row-inserted
5009             object:row-reordered
5010             object:row-deleted
5011             object:column-inserted
5012             object:column-reordered
5013             object:column-deleted
5014             object:model-changed        
5015
5016 2001-11-16  Bill Haneman <bill.haneman@sun.com>
5017
5018         * libspi/hyperlink.c,h:
5019         Fixed some broken stuff in hyperlink.
5020         
5021         * libspi/relation.h:
5022         * libspi/relation.c:
5023         * cspi/spi_accessible.c:
5024         Initial implementations of AccessibleRelation methods, and docs.
5025
5026         * libspi/accessible.c:
5027         Fixed a bug that caused SEGV  if an accessible
5028         object's description is NULL, and a client
5029         requests it.  An empty string is now returned.
5030
5031         * cspi/spi_editabletext.c:
5032         * cspi/spi_hypertext.c:
5033         * cspi/spi_image.c:
5034         * cspi/spi_hyperlink.c:
5035         * cspi/spi_table.c:
5036         Added docs.  
5037
5038         Doc coverage now 95%.
5039
5040 2001-11-16  Bill Haneman <bill.haneman@sun.com>
5041
5042         One last namespacing revision:
5043         * libspi/accessibleeventlistener.[ch]:
5044         Renamed SpiAccessibleEventListener to SpiEventListener,
5045         (no need for two namespaces ;-)
5046
5047         And lots of documentation fixes:
5048
5049         * docs/at-spi-docs.sgml:
5050         Fixed 'underscore vs. hyphen' bug that was preventing
5051         the gtk-doc API docs from being automatically generated.
5052
5053         * cspi/spi-impl.h
5054         * cspi/spi-listener.h
5055         * cspi/spi.h
5056         * cspi/spi_accessible.c
5057         * cspi/spi_action.c
5058         * cspi/spi_application.c
5059         * cspi/spi_component.c
5060         * cspi/spi_editabletext.c
5061         * cspi/spi_event.c
5062         * cspi/spi_hypertext.c
5063         * cspi/spi_main.c
5064         * cspi/spi_registry.c
5065         * cspi/spi_selection.c
5066         * cspi/spi_text.c
5067         * cspi/spi_value.c
5068         * docs/Makefile.am
5069         * docs/at-spi-docs.sgml
5070         * docs/at-spi-sections.txt
5071         
5072         Added and fixed up gtk-doc documentation in cspi.
5073         
5074         Interfaces now (fully) documented (subject to revision and enhancement):
5075         SPI_main
5076         Event Listener Support
5077         Registry API
5078         AccessibleApplication
5079         Accessible
5080         AccessibleAction
5081         AccessibleComponent
5082         AccessibleEditableText
5083         AccessibleSelection
5084         AccessibleText
5085         AccessibleValue
5086
5087         still pending:
5088         AccessibleStateSet
5089         AccessibleRelationSet
5090         AccessibleImage
5091         AccessibleTable
5092         AccessibleHyperlink
5093         
5094 2001-11-14  Bill Haneman <bill.haneman@sun.com>
5095
5096         * at-bridge/bridge.c:
5097         Initial work for toolkit-level key snooper connection by bridge.
5098
5099         * cspi/spi-impl.h:
5100         * cspi/spi_*.h:
5101         * cspi/spi_*.c:
5102         New typedefs and fixes to support new namespacing, and cleaner
5103         separation of cspi bindings from libspi bonobo implementation.  
5104         Removed inconsistent and extraneous Spi* namespace prefix that
5105         had crept into cspi headers.
5106         Lots of comment fixes that sed had missed.
5107
5108         * cspi/spi-roletypes.h:
5109         * cspi/spi-statetypes.h:
5110         Added SPI_ prefix to Role and State typedefs, and changed all-caps ROLE type
5111         to AccessibleRoleType.
5112         
5113         * libspi/accessibleeventlistener.h:
5114         Fixed minor namespacing weirdness.
5115
5116         * libspi/deviceeventcontroller.c:
5117         Reordered some internal API for device listeners.
5118         Changed the key registry final boolean to 'is_system_global'
5119         rather than 'is_synchronous', which is more descriptive of its 
5120         actual meaning.
5121         Added spi_device_event_controller_new().
5122         Added  SpiRegistry backpointer to SpiDeviceEventControllerClass.
5123          
5124         * libspi/keystrokelistener.[ch]:
5125         Namespaced KeystrokeListener to SpiKeystrokeListener.
5126         Changed uses of keymasks to use SPI_ prefix, and did other
5127         knock-on fixups.
5128
5129         * libspi/keymasks.h:
5130         Namespaced keymask constants with SPI_ prefix.
5131
5132         * libspi/registry.c:
5133         Some warning fixes, and knock-on fixes from namespace changes.
5134
5135         * test/Makefile.am:
5136         Added rules for accessx-gui test program.
5137
5138         * test/accessx-gui.c:
5139         Added a simple GUI program in GTK+-2.0 for the AccessX keyboard
5140         utility.  It doesn't actually use at-spi, but it's still cool and
5141         useful ;-)
5142
5143         * test/keysynth-demo.c:
5144         * test/simple-at.c:
5145         * test/at.c:
5146         * test/app.c:
5147         Fixes so that these test clients work properly with the namespaced
5148         libraries. (Incompletely tested for technical reasons, fixes may follow)
5149         
5150
5151 2001-11-13  Michael Meeks  <michael@ximian.com>
5152
5153         * libspi/application.c
5154         (impl_accessibility_application_get_version),
5155         (impl_accessibility_application_get_toolkit_name):
5156         warning fixes.
5157         (impl_accessibility_application_set_id),
5158         (impl_accessibility_application_get_id): remove
5159         redundant casting code.
5160
5161         * libspi/action.c (impl_getDescription): fix warnings.
5162
5163         * libspi/accessible.c
5164         (impl_accessibility_accessible_get_parent),
5165         (impl_accessibility_accessible_get_child_at_index),
5166         (impl_accessibility_accessible_get_state),
5167         (impl_accessibility_accessible_get_relation_set):
5168         warning fixes & include action.h
5169
5170 2001-11-13  Michael Meeks  <michael@ximian.com>
5171
5172         * *.[ch] fix bits I screwed up:
5173
5174                 s/([^ \tb(\*\&\?\",])spi_/\1/g;
5175                 s/([^ \tb(\*\&\?\",])Spi/\1/g;
5176         
5177 2001-11-13  Michael Meeks  <michael@ximian.com>
5178
5179         * *.[ch] Namespace libspi into spi_ and Spi.
5180
5181 2001-13-11  Michael Meeks  <michael@ximian.com>
5182
5183         * Makefile.am: dist & install at-spi-1.0.pc
5184
5185         * libspi/Makefile.am: install into at-spi-1.0
5186
5187         * idl/Makefile.am (idldir): install into at-spi-1.0
5188
5189         * at-spi-1.0.pc.in: add.
5190
5191         * configure.in: build it.
5192
5193 2001-11-12  Bill Haneman <bill.haneman@sun.com>
5194
5195         * test/keysynth-demo.c:
5196         Use a 'realize' signal-handler to set the WM properties for
5197         the virtual keyboard, rather than making it a "POPUP" type
5198         override-redirect window (thanks to anders carlsson for that
5199         tip!)
5200
5201 2001-11-11  Bill Haneman <bill.haneman@sun.com>
5202
5203         * test/Makefile.am:
5204         * test/keysynth-demo.c:
5205         Added new test of key synthesis, which creates a simple
5206         (mouse-operated) onscreen keyboard.  It inserts key events into
5207         the currently-focused window, thus it does not grab keyboard focus
5208         itself.
5209
5210         * cspi/spi_registry.c:
5211         Added C binding for AT-SPI generateKeyEvent.
5212
5213         * libspi/deviceeventcontroller.c:
5214         Added call to XFilterEvent so that key listener works with XIM (we
5215         hope).  Added event_synth_type to generateKeyEvent, so that we can
5216         produce KEY_PRESS, KEY_RELEASE, KEY_PRESSRELEASE (pair), or
5217         synthesize a press/release pair for KeySyms.    
5218         
5219 2001-11-09  Bill Haneman <bill.haneman@sun.com>
5220
5221         * libspi/Makefile.am: 
5222         * registryd/Makefile.am:
5223         (temporary) hack to include libXtst in libspi and registryd.
5224         (Needed for keystroke synthesis, see below).
5225
5226         * idl/Registry.idl:
5227         Improved API for registerKeystrokeListener, in accordance with
5228         discussions with Gnopernicus team and X server research.
5229
5230         * libspi/registry.c:
5231         * libspi/deviceeventcontroller.c:
5232         * libspi/accessible.c:
5233         * libspi/keystrokelistener.c:
5234         Changes and fixes to support keylisteners for potentially
5235         consumed key events (that is, 'passive grabs').
5236         Added implementation for generateKeyEvent() [untested].
5237
5238         * cspi/spi.h:
5239         Changes to registerKeystrokeListener() API, as above.
5240         Added deregisterGlobalEventListenerAll(), and 
5241         deregisterKeystrokeListener(), which are needed for clean exit of
5242         clients.
5243         Added typedefs for KeyListenerSyncType, KeyEventMask, and KeySet,
5244         and a macro ALL_KEYS which may be used in place of a KeySet pointer.
5245         
5246         * cspi/spi_registry.c:
5247         Added implementations of function prototypes mentioned above.
5248         
5249         * registryd/registryd.c:
5250         Added the key listener event source as a g_timeout(), to allow
5251         receipt of key events that are not caught by GDK (since GDK
5252         doesn't support passive keygrabs, this was necessary).
5253
5254         * test/simple-at.c:
5255         Changed to attach a keylistener to 'Alt' keys, and
5256         respond to the following keycommands: Alt-M (toggle magnifier);
5257         Alt-F (toggle speech); Alt-Q (quit).
5258         Added an exit routine to deregister the listeners, and a key
5259         listener that prints some key info to the console when a key
5260         matches the listener mask (and is thus received by the listener).
5261         
5262         * util/idl/Magnifier.idl:
5263         Changes to magnifier API to support multiple zoom regions,
5264         non-uniform scaling in x and y, markDirty, and a host of other
5265         features that would be useful to magnification.
5266
5267         * util/mag_image.h:
5268         * util/mag_client.c:
5269         * util/mag_client.h:
5270         * util/mag_control.c:
5271         * util/magnifier.c:
5272         Source code changes to support the above IDL changes.
5273         
5274         * util/mag_image.c:
5275         As above, and also changes to use a (slower) generic conversion
5276         path for colormap conversions, since the fast RGB conversions have been
5277         reported to fail for 16-bit displays.
5278
5279 2001-10-26  Michael Meeks  <michael@ximian.com>
5280
5281         * libspi/Makefile.am (orbittypelibdir): install in orbit-2.0
5282
5283 2001-10-26  Laszlo Peter <laca@ireland.sun.com>
5284
5285         * at-bridge/Makefile.am: fix LDFLAGS.
5286
5287 2001-10-09  Bill Haneman <bill.haneman@sun.com>
5288
5289         * at-bridge/bridge.c:
5290         Re-worked listeners for toolkit events, now we have signal
5291         and property listeners. Added a private method
5292         register_atk_event_listeners(), which registers with the
5293         various atk and gtk signals we need to monitor in order to emit
5294         our at-spi events.
5295         Added emission hook for AtkObject:property-change events, to
5296         support the 'property listeners'.
5297         Fixed some alloc()s of Accessibility_Event structs to use CORBA
5298         allocation.
5299
5300         * cspi/spi-util.c: added methods spi_warn_ev and spi_check_ev,
5301         which emit warnings and exit, respectively, if CORBA errors occur
5302         during remote calls, and we now use these methods to check most of
5303         our CORBA calls in the C bindings.
5304
5305         * cspi/spi_accessible.c:
5306         Changed AccessibleSelection_refSelectedChild() to
5307         AccessibleSelection_getSelectedChild(), since all our cspi 'gets'
5308         now increment refcounts.
5309
5310         * cspi/spi_component.c:
5311         Fixed some long pointer casts (dangerous!) to pass pointers to
5312         CORBA_longs of the proper type to the CORBA stubs, and copy the
5313         data into the longs that were passed into the C bindings code.
5314         
5315         * at-bridge/bridge.c:
5316         
5317         * libspi/accessible.c:
5318         Removed ATK_IS_HYPERLINK() query, since AtkObjects are never
5319         hyperlinks, AtkHyperlink is an object type.     
5320
5321         * libspi/application.c:
5322         Added various conversions to and from "generic" event types and
5323         atk-specific types; this is really part of the 'bridge'
5324         implementation but is valid for all AtkObject-based accessibility 
5325         implementations.
5326
5327         * libspi/editabletext.c:
5328         Fixed nasty bug wherein editable text's finalize method was
5329         unref'ing tha AtkObject reference that the text parent class was
5330         about to unref _again_.  There was also a nasty inheritance bug
5331         that meant that the AccessibleEditableText class was corrupt.
5332
5333         * libspi/selection.c:
5334         Provided implementations for some selection API that was broken.
5335         
5336         * idl/Application.idl:
5337         Added registerObjectEventListener () method.
5338
5339         * THROUGHOUT:
5340         Fixed a number of return values that were Bonobo_Unknowns from
5341         bonobo_object_corba_objref(), which I
5342         forgot to dup before returning.  Changed instances of 
5343         bonobo_object_corba_objref (bonobo_object(o)) to
5344         BONOBO_OBJREF(o), for concision and clarity.
5345         
5346 2001-10-13  Louise Miller <louise.miller@sun.com>
5347
5348         * idl/Accessible.idl, idl/Application.idl, idl/Desktop.idl,
5349         idl/Event.idl, idl/Registry.idl
5350         Changed these files to include Bonobo_Unknown.idl instead
5351         of Bonobo.idl
5352
5353 2001-09-10  Marc Mulcahy <marc.mulcahy@sun.com
5354
5355         * libspi/component.c libspi/component.h:
5356                 Fixed typo.  Added assertions for object checks in 
5357         AccessibleComponent code.
5358
5359 2001-10-09  Bill Haneman <bill.haneman@sun.com>
5360
5361         * idl/Accessible.idl:
5362                 Added 'isEqual (Accessible *object)' 
5363         method for Accessible. (Not Yet Implemented).
5364         
5365         * idl/Registry.idl:
5366                 Changed signature of registerKeystrokeListener() to
5367         take a KeySet and KeyEventSeq so that specific keys and event
5368         types could be requested for monitoring, and added a flag
5369         is_synchronous so that either synchronous or asynchronous
5370         notification could be requested.  (However this is not all
5371         implemented yet). This also meant adding two new typedefs,
5372         KeyEventSeq and KeySet.
5373
5374         * idl/Relation.idl: 
5375                 Added two new relations, RELATION_TOOLTIP_FOR and
5376         RELATION_LEAFNODE_OF.
5377
5378         * idl/State.idl:
5379                 Added new state, STATE_HAS_TOOLTIP.
5380         
5381         * libspi/text.c, editabletext.c:
5382                 Added new assertions to all casts of bonobo-objects from
5383         CORBA servants, to prevent Text API calls on non-text objects.
5384                 Changed suspect casts of int-pointer types, so that we
5385         always send a valid CORBA_long pointer to the CORBA APIs that use
5386         in/out long parameters.  We then have to copy from the CORBA_long
5387         into the regular long or int for return to the C bindings, or
5388         vice-versa when returning parameters from ATK calls to the bonobo wrappers.
5389         
5390         * cspi/spi_text.c:
5391         * libspi/deviceeventcontroller.c:
5392                 Cleaned these sources up.
5393         * idl/Text.idl:
5394                 Changed return type for getCharacterAtOffset to
5395         CORBA_unsigned_long, to allow for 32-bit characters.
5396         
5397                 
5398 2001-10-08  Bill Haneman <bill.haneman@sun.com>
5399
5400         * util/Makefile.am:
5401         * idl/Makefile.am:
5402                 Fixed 'make dist' so that distro compiles...
5403         * libspi/keymasks.h:
5404                 new file.
5405         * cspi/spi-listener.c:
5406                 KeystrokeListenerCB now returns a boolean.
5407         * cspi/spi.h:
5408                 Added KeyEventType struct, and KeyStroke.
5409                 Also added createKeystrokeListener(),
5410         KeystrokeListener_addCallback(),
5411         KeystrokeListener_removeCallback(), and added a keymask to
5412         registerKeystrokeListener().
5413         * cspi/spi_accessible.c:
5414                 Changed numerous return types for interfaces from
5415         AccessibleComponent to Accessible<InterfaceName>; this was
5416         probably a cut-and-paste error.
5417         * cspi/spi_event.c:
5418                 Implementations of new KeystrokeListener api (from spi.h,
5419         above).
5420         * idl/Registry.idl:
5421                 Changes to key modifier mapping.
5422                 Created ControllerEventMask struct.
5423                 Made DeviceEventController derive from Bonobo::Unknown.
5424         * idl/Text.idl:
5425                 Removed TEXT_BOUNDARY_CURSOR_POS boundary type.
5426         * libspi/deviceeventcontroller.c:
5427                 Added a number of new internal (private) methods.
5428         * libspi/editabletext.c:
5429         * libspi/editabletext.h:
5430                 Fixed a number of bugs related to the fact that
5431         editabletext inherits from text.  Fixed the EditableText struct,
5432         the init() call, and use correct casts when calling Text methods
5433         from an EditableText object.  Removed (duplicate) atko from the
5434         EditableText structure, we use the one in the parent Text
5435         structure via the casts mentioned above.
5436         * libspi/keystrokelistener.[ch]:
5437         * libspi/registry.c:
5438                 Changes in support of keyboard handling (above).
5439         
5440         Keyboard handling, though partly functional, is still not
5441         recommended for at-spi client use as there is considerable 
5442         work yet to be done.
5443
5444         * libspi/text.c:
5445                 Changed some places where pointers to various int types
5446         are cast to be pointers to CORBA_long types and vice-versa:
5447         pointer casting is not safe so we pass pointers of the correct
5448         types and then cast the result before putting it into the target
5449         pointers.
5450
5451         * libspi/text.h: minor typos corrected.
5452         * test/simple-at.c: 
5453                 We now speak not only the name of a Text element, but the
5454         first sentence of its content, when it receives focus.
5455                 I also changed the text compression to 75% from 50%.
5456         * util/Accessibility_Util.server.in:
5457                 Changed the default magnifier type to be a 3x vertical
5458         splitscreen magnifier (was previously a 2x horizontal one).
5459
5460 2001-10-03  Bill Haneman <bill.haneman@sun.com>
5461
5462         * libspi/keystrokelistener.h:
5463         * libspi/keystrokelistener.c:
5464                 Initial functional implementations of KeystrokeListener.
5465         * idl/Registry.idl:
5466         
5467 2001-10-05  Marc Mulcahy <marc.mulcahy@sun.com>
5468
5469         Fixed string handling for NULL strings in libspi.
5470         Added spi_freeString to free strings returned by C bindings.
5471
5472 2001-09-30  Bill Haneman <bill.haneman@sun.com>
5473
5474         * libspi/keystrokelistener.h:
5475         * libspi/keystrokelistener.c:
5476                 Began (no-op) implementations of KeystrokeListener
5477                         (see below).
5478         * libspi/deviceeventcontroller.c:
5479         * libspi/deviceeventcontroller.h:
5480                 Began creating implementations of DeviceEventController,
5481                         to handle keystroke and mouse event listening and
5482                         synthesis.
5483         * libspi/accessible.c:
5484                 Stubbed-in the implementations for
5485                         Accessibility_Accessible_getState and
5486                         Accessibility_Accessible_getRelationSet.
5487         * libspi/registry.c:
5488                 Improved de-registration process and fixed some bugs, 
5489                         deregistration now works correctly.
5490         * libspi/desktop.c:
5491                 Added initialization of applications list (to NULL).
5492         * util/magnifier.c:
5493                 Reduced speech compression from 0.5 to 0.7, for demo.
5494                 Changed call to gdk_window_set_decorations()
5495                         to gtk_window_set_decorated().
5496         * at-bridge/bridge.c:
5497                 Bridge now deregisters when app exits, via
5498                         registration of a cleanup function
5499                         with the g_atexit() call.
5500                         Required making 'app' static, renamed 'this_app'.
5501                 Fixed broken use of bonobo_init, passing argv wrongly.
5502
5503 2001-09-27  Bill Haneman <bill.haneman@sun.com>
5504
5505         * util:
5506         * util/Makefile.am: 
5507                 Created a new directory for 
5508                         accessibility-related utilities, primarily for
5509                         testing and demo purposes, but with possible
5510                         end-user utility.
5511         
5512         * util/magnifier.c:
5513         * util/magnifier.h:
5514         * util/mag_image.c:
5515         * util/mag_image.h:
5516                 Onscreen magnifier utility that
5517                         is implemented as a bonobo service.
5518         
5519         * util/mag_client.c:
5520         * util/mag_client.h:
5521                 Client-side support (simple C bindings) 
5522                         for Magnification service
5523         
5524         * util/mag_control.c:
5525                 Client program example for 
5526                         Magnification service
5527         
5528         * util/Accessibility_Magnifier.server.in:
5529                 Bonobo-activation file for the 
5530                         Magnification service.
5531         
5532         * util/idl:
5533         * util/idl/Magnifier.idl:
5534                 IDL defining the bonobo Magnification
5535                         service interface.
5536
5537         * test/simple-at.c:
5538                 Modifications to use the bonobo-activated magnifier
5539                         above, in place of trying to connect to an existing
5540                         magnifier that uses socket-listening IPC.
5541
5542                 If env variable MAGNIFIER is set, a magnifier service
5543                         will be started if one does not exist.
5544         
5545 2001-09-25  Bill Haneman <bill.haneman@sun.com>
5546
5547         * at-bridge/bridge.c:
5548                 applied patch from Marc to build and run 
5549                 against new glib and gtk+ (seemed like a change 
5550                 to bonobo_init signature was made ?)
5551         * test/simple-at.c:
5552                 made festival-server support turned off by default.
5553                 Added support for a simple magnifier (off by default)
5554                 which will be added to a 'util' directory later.
5555         * at-bridge/Makefile.am:
5556                 Changed "application.h" header from a 'source'
5557                 to a 'dependency' of libat-bridge.
5558
5559 2001-09-12  Marc Mulcahy <marc.mulcahy@sun.com>
5560
5561         * cspi/Makefile.am:
5562                 Added spi-util.c.
5563
5564         * cspi/spi-util.c:
5565                 Fixed typo
5566
5567         * cspi/spi.c:
5568                 Added interface implementation c files to list of
5569                         includes so they are included in libcspi.
5570
5571         * cspi/spi.h:
5572                 Changed prototype of AccessibleAction_doAction to return a
5573                         boolean.
5574                 Changed prototype of AccessibleTable_getCaption to
5575                         return an Accessible.
5576                 Changed prototype of AccessibleTable_getSelectedRows
5577                         and AccessibleTable_getSelectedColumns to
5578                         return a long (returns the number of selected rows
5579                         or columns respectively).
5580                 Changed name of AccessibleText_refRunAttributes to
5581                         AccessibleText_getAttributes.
5582                 Changed prototype of AccessibleText_getCharacterExtents to
5583                         return a void rather than a boolean. 
5584                 Added support for a AccessibleCoordType parameter
5585                         specifying what type of coordinates are desired.
5586                 Added an AccessibleCordType parameter to
5587                         AccessibleText_getPointAtOffset.
5588
5589         * cspi/spi_accessible.c:
5590                 Added code to return the outstanding interfaces from
5591                         Accessible_queryInterface.
5592
5593         * cspi/spi_action.c:
5594                 Fixed typos.
5595                 Corrected call to getNActions to call the c binding
5596                         for an attribute.
5597
5598         * cspi/spi_editabletext.c:
5599                 Fixed typos.
5600                 Changed name from setRunAttributes to setAttributes.
5601
5602         * cspi/spi_hyperlink.c:
5603                 Fixed typos.
5604                 Changed call to getNAnchors to correctly call the c
5605                         binding for an attribute.
5606
5607         * cspi/spi_hypertext.c:
5608                 Fixed typos.
5609                 Changed getImageDescription to correctly call the
5610                         binding for an attribute.
5611
5612         * cspi/spi_selection.c:
5613                 Changed getNSelectedChildren to correctly call the c
5614                         binding for the attribute.
5615                 Changed refSelectedChild to getSelectedChild.
5616
5617         * cspi/spi_table.c:
5618                 Fixed typos.
5619                 Changed getCaption to return an Accessible.
5620                 Fixed calls which retrieve attributes.
5621                 Changed refAt to getAccessibleAt.
5622                 Changed getNSelectedRows and getNSelectedColumns to
5623                         return longs.
5624
5625         * cspi/spi_text.c:
5626                 Changed getCharacterExtents and getPointAtOffset to accept an
5627                         AccessibleCoordType.
5628                 Fixed typos.
5629                 Changed calls which retrieve attributes.
5630                 Changed refRunAttributes to getAttributes.
5631
5632         * cspi/spi_value.c:
5633                 Fixed typos.
5634
5635         * idl/Hyperlink.idl:
5636                 Changed n_anchors attribute to nAnchors to keep naming
5637                         convention consistent.
5638
5639         * idl/Table.idl:
5640                 Made Table inherit from Bonobo::Unknown.
5641                 Added nSelectedColumns and nSelectedRows attributes.
5642
5643         * idl/Value.idl:
5644                 Made Value inherit from Bonobo::Unknown.
5645
5646         * libspi/hyperlink.c:
5647                 Change for nAnchors attributte name change.
5648
5649 2001-09-12  Marc Mulcahy <marc.mulcahy@sun.com>
5650         * cspi/Makefile.am:
5651                 Added spi-util.c.
5652
5653         * cspi/spi-util.c:
5654                 Fixed typo
5655
5656         * cspi/spi.c:
5657                 Added interface implementation c files to list of
5658                         includes so they are included in libcspi.
5659
5660         * cspi/spi.h:
5661                 Changed prototype of AccessibleAction_doAction to return a
5662                         boolean.
5663                 Changed prototype of AccessibleTable_getCaption to
5664                         return an Accessible.
5665                 Changed prototype of AccessibleTable_getSelectedRows
5666                         and AccessibleTable_getSelectedColumns to
5667                         return a long (returns the number of selected rows
5668                         or columns respectively).
5669                 Changed name of AccessibleText_refRunAttributes to
5670                         AccessibleText_getAttributes.
5671                 Changed prototype of AccessibleText_getCharacterExtents to
5672                         return a void rather than a boolean. 
5673                 Added support for a AccessibleCoordType parameter
5674                         specifying what type of coordinates are desired.
5675                 Added an AccessibleCordType parameter to
5676                         AccessibleText_getPointAtOffset.
5677
5678         * cspi/spi_accessible.c:
5679                 Added code to return the outstanding interfaces from
5680                         Accessible_queryInterface.
5681
5682         * cspi/spi_action.c:
5683                 Fixed typos.
5684                 Corrected call to getNActions to call the c binding
5685                         for an attribute.
5686
5687         * cspi/spi_editabletext.c:
5688                 Fixed typos.
5689                 Changed name from setRunAttributes to setAttributes.
5690
5691         * cspi/spi_hyperlink.c:
5692                 Fixed typos.
5693                 Changed call to getNAnchors to correctly call the c
5694                         binding for an attribute.
5695
5696         * cspi/spi_hypertext.c:
5697                 Fixed typos.
5698                 Changed getImageDescription to correctly call the
5699                         binding for an attribute.
5700
5701         * cspi/spi_selection.c:
5702                 Changed getNSelectedChildren to correctly call the c
5703                         binding for the attribute.
5704                 Changed refSelectedChild to getSelectedChild.
5705
5706         * cspi/spi_table.c:
5707                 Fixed typos.
5708                 Changed getCaption to return an Accessible.
5709                 Fixed calls which retrieve attributes.
5710                 Changed refAt to getAccessibleAt.
5711                 Changed getNSelectedRows and getNSelectedColumns to
5712                         return longs.
5713
5714         * cspi/spi_text.c:
5715                 Changed getCharacterExtents and getPointAtOffset to accept an
5716                         AccessibleCoordType.
5717                 Fixed typos.
5718                 Changed calls which retrieve attributes.
5719                 Changed refRunAttributes to getAttributes.
5720
5721         * cspi/spi_value.c:
5722                 Fixed typos.
5723
5724         * idl/Hyperlink.idl:
5725                 Changed n_anchors attribute to nAnchors to keep naming
5726                         convention consistent.
5727
5728         * idl/Table.idl:
5729                 Made Table inherit from Bonobo::Unknown.
5730                 Added nSelectedColumns and nSelectedRows attributes.
5731
5732         * idl/Value.idl:
5733                 Made Value inherit from Bonobo::Unknown.
5734
5735         * libspi/hyperlink.c:
5736                 Change for nAnchors attributte name change.
5737
5738
5739 2001-09-05  Marc Mulcahy <marc.mulcahy@sun.com>
5740
5741         implementations-- made server implementations own AtkObject pointers
5742         rather than their respective AtkInterrface pointers to fix
5743         refcounting.  AtkHyperlink is still broken.
5744
5745 2001-09-04  Bill Haneman <bill.haneman@sun.com>
5746         * cspi/spi_accessible.c:
5747                 Added method Accessible_Role_getName(),
5748                         and requisite string array (role_names).
5749                 Added conversion string_from_corba_strin() call
5750                         to Accessible_getName and _getDescription.
5751         * libspi/accessible.c:
5752                 Added implementation for Accessible_getRole()
5753         * test/simple-at.c:
5754                 Added festival support, used if environment variable
5755                         FESTIVAL is set.
5756         
5757 2001-09-04  Bill Haneman <bill.haneman@sun.com>
5758
5759         * at-bridge/bridge.c:
5760             Now allocate Accessibility_Event using
5761             Accessibility_Event__alloc() instead of g_new0().
5762         * libspi/accessibleeventlistener.c:
5763             Initialize AccessibleEventListener->callbacks to NULL.
5764             Fixed accessible__event_listener_init() param, changed to
5765             "AccessibleEventListener *" type.
5766             Changed a bonobo_object_release_unref() call to
5767             Accessibility_Accessible_unref().
5768         * libspi/listener.c:
5769             Changed Bonobo_Unknown_unref to (equivalent) 
5770             Accessibility_Accessible_unref.
5771         * libspi/registry.c:
5772             Changed bonobo_object_release_unref to 
5773             Accessibility_Accessible_unref.
5774         
5775 2001-09-04  Marc Mulcahy <marc.mulcahy@sun.com>
5776         
5777         * Added files:
5778             spi_action.c spi_editabletext.c spi_hyperlink.c spi_hypertext.c
5779             spi_image.c spi_selection.c spi_table.c spi_text.c spi_value.c
5780             spi-util.c spi-util.h
5781             Implementations for C bindings to remaining accessibility 
5782             interfaces.
5783
5784 2001-09-04 Marc Mulcahy <marc.mulcahy@sun.com>
5785         
5786         * idl/Action.idl:
5787             changed return value of Action from void to boolean to 
5788             bring in line with ATK.
5789
5790         * idl/Text.idl:
5791             Changed getText funcions to return "out" start and end offsets.
5792             Changed getAttributes to take and offset and return the start 
5793             and end offset of the attribute run.
5794             Changed getOffsetAtPoint and getCharacterExtents to take an 
5795              enum describing whether coordinates are window or screen.
5796
5797         * Added files:
5798             libspi/action.c libspi/action.h libspi/editabletext.c 
5799             libspi/editabletext.h libspi/hyperlink.c libspi/hyperlink.h
5800             libspi/hypertext.c libspi/hypertext.h libspi/image.c 
5801             libspi/image.h libspi/selection.c libspi/selection.h
5802             libspi/table.c libspi/table.h libspi/text.c libspi/text.h 
5803             libspi/value.c libspi/value.h
5804             Added server implementations for outstanding ATK interfaces 
5805             not yet implemented.
5806  
5807 2001-09-04  Bill Haneman <bill.haneman@sun.com>
5808
5809         * idl/Action.idl:
5810                 Added (missing) getName() method. 
5811                 Made nActions an attribute.
5812         * idl/EditableText.idl:
5813                 Changed order of params in setAttributes.
5814         * idl/Hyperlink.idl:
5815                 Removed getAnchor, added getURI.
5816         * idl/Image.idl:
5817                 Changed attributes to methods, for efficiency
5818                 (so that getting extents can be done in one call)
5819         * idl/Selection.idl:
5820                 Changed nSelectedChildren to attribute, and re-indented.
5821         * idl/Table.idl: changed nrows, ncolumns, caption, summary 
5822                 to attributes.
5823         * idl/Text.idl: reformatted to match our coding style.
5824                 (temporarily?) removed getRowColumnAtOffset().
5825                 Changed text selection API to support multi-select and
5826                 non-contiguous selections, as in ATK.
5827         * idl/Value.idl: changed some methods to attributes.
5828
5829 2001-08-24  Mark McLoughlin <mark@skynet.ie>
5830
5831         * libspi/listener.c(impl_notify_event):
5832         BonoboUnkown_unref the source instead
5833         of bonobo_object_release_unref - the ORB
5834         handles the releasing.
5835
5836         * configure.in: require ORBit-2.3.94 for
5837         this behaviour.
5838
5839 2001-08-21  Bill Haneman <bill.haneman@sun.com>
5840
5841         Tagged CVS repository 'EA_1_0'.
5842         * README.EARLY_ACCESS:
5843         Alphabetized acknowledgements list, and
5844         added someone.
5845         Listed some known dependencies of at-spi.
5846
5847 2001-08-20  Bill Haneman <bill.haneman@sun.com>
5848
5849         * docs/at-spi-docs.sgml:
5850         * docs/at-spi-sections.txt:
5851         * docs/at-spi-overrides.txt: (Added zero-length file)
5852         Documentation improvements - gtk-doc should build
5853         docs for all implemented C bindings now.
5854         * cspi/Makefile.am:
5855         * cspi/spi_main.c:
5856         * cspi/spi.c: (New file)
5857         * cspi/spi_event.c: (New file)
5858         * cspi/spi_registry.c: (New file)
5859         * cspi/spi_accessible.c: (New file)
5860         * cspi/spi_application.c: (New file)
5861         * cspi/spi_component.c: (New file)
5862         Split spi_main.c into six parts, and included them from
5863         "spi.c".  This is a bit of a hack, probably temporary,
5864         but required by gtk-doc, apparently.
5865         
5866 2001-08-20  Bill Haneman <bill.haneman@sun.com>
5867
5868         * docs/Makefile.am:
5869         * docs/at-spi-docs.sgml:
5870         * docs/at-spi-sections.txt:
5871         * configure.in:
5872         Initial checkins/modifications for gtk-doc generation.
5873         * cspi/spi.h:
5874         * cspi/spi.c:
5875         Added (missing) interface query methods to Accessible's C binding.
5876         * cspi/spi-impl.h:
5877         Added GenericInterface type definition.
5878         * test/simple-at.c:
5879         Added query for AccessibleComponent interface to focus event handler.
5880         Added printout of bounding box for focussed component.
5881         * libspi/component.c:
5882         Added partial implementation for AccessibleComponent to C binding.
5883         * idl/Application.idl:
5884         * libspi/registry.c:
5885         * libspi/listener.c:
5886         * libspi/application.c:
5887         * libspi/application.h:
5888         Changed "ID" attribute type from string to long.
5889
5890 2001-08-19  Bill Haneman <bill.haneman@sun.com>
5891
5892         * cspi/spi.h:
5893         * cspi/spi.c:
5894         Made method naming consistent: methods taking object args
5895         start with uppercase, other methods (except those using
5896         acronyms) start with lowercase.  Underscores delimit between
5897         object names and method names:
5898         SPI_init() - uppercase since it starts with an acronym.
5899         getDesktopCount () - lowercase start since no object param0.
5900         Accessible_getName() - uppercase object type name, studlyCaps method
5901                                name.
5902
5903         * cspi/spi.h:
5904         Added gtk-doc documentation for all currently implemented
5905         methods in the C bindings API.
5906
5907 2001-08-18  Bill Haneman <bill.haneman@sun.com>
5908
5909         * Makefile.am : changed build order to build test last.
5910         * cspi/spi.h :
5911         * cspi/spi_main.c :
5912         Changed "createEventListener" to "CreateEventListener".
5913         * libspi/accessibleeventlistener.c :
5914         Bugfix for addition of callbacks.
5915         * test/Makefile.am :
5916         * test/simple-at.c :
5917         Added new test that uses the C bindings API.
5918         * idl/Event.idl :
5919         * libspi/listener.c :
5920         * libspi/registry.c :
5921         * libspi/accessibleeventlistener.c :
5922         * at-bridge/bridge.c :
5923         Renamed member "target" of Accessibility_Event to "source",
5924         which is more descriptive.
5925         
5926
5927 2001-08-18  Bill Haneman <bill.haneman@sun.com>
5928
5929         * Makefile.am: 
5930         * configure.in :
5931         * cspi/Makefile.am :
5932         Added makefile support for at-spi/cspi directory.
5933         * cspi/spi.h : 
5934         * cspi/spi-impl.h :
5935         * cspi/spi-listener.h : (NEW FILE)
5936         Added support for/use of spi-listener.h.
5937         * cspi/spi_main.c :
5938         C bindings now build successfully, with no warnings.
5939         * libspi/accessibleeventlistener.h : (NEW FILE)
5940         * libspi/accessibleeventlistener.c : (NEW FILE)
5941         * libspi/Makefile.am :
5942         Added new object type "AccessibleEventListener"
5943         which inherits from Listener, and allows attachment
5944         of in-process callbacks (so that a client with a listening
5945         object instance can add functionality to the local 
5946         implementation, dynamically).
5947
5948 2001-08-18  Bill Haneman <bill.haneman@sun.com>
5949
5950         * libspi/accessible.c: 
5951         Add implementation for get_index_in_parent().
5952         * cspi/spi.h : 
5953         Added #include of "spi-roletypes.h", and
5954         added enumerated type AccessibleCoordType.
5955         Added definition for KeystrokeListener (function type).
5956
5957         ADDED FILES:
5958         * cspi/spi-statetypes.h :
5959         * cspi/spi-roletypes.h :
5960         * cspi/spi-impl.h :
5961         Added these headers, used by spi.h.
5962         * cspi/spi_main.c : 
5963         Added code (NOTE: not yet built by make).
5964
5965 2001-08-18  Mark McLoughlin <mark@skynet.ie>
5966
5967         * libspi/Makefile.am: generate imodule
5968         at the same time as other idl compiler 
5969         generated files. 
5970
5971 2001-08-17  Bill Haneman <bill.haneman@sun.com>
5972         * libspi/registry.c :
5973         * libspi/application.c :
5974         * idl/Application.idl :
5975         Made registration with toolkit an application method,
5976         which is required since each app has its own toolkit static
5977         environment.  Thus the bridge must register for 
5978         notification of toolkit events from each application in turn.
5979         Toolkit notifications are now successfully registered for, and
5980         sent to the listening at client.
5981         * test/at.c :
5982         Changed toolkit event string to use hyphens rather than underscores.
5983         * libspi/listener.c :
5984         listner now gives more info in debug mode - it reports the
5985         name of the event received, as well as the name of the source.
5986         
5987
5988 2001-08-16  Bill Haneman <bill.haneman@sun.com>
5989
5990         * libspi/registry.c :
5991         added more implementation for toolkit events.
5992         Fixed bug such that toolkit event registrations
5993         (via atk) use the whole event name string, not 
5994         just minor+detail.
5995         Removed a useless call to an ORBit_ method.
5996         * at-bridge/bridge.c :
5997         Removed unused local sbuf[] variable.
5998         * test/at.c :
5999         We now register for Gtk:GtkWidget:button_press_event 
6000         events as well as "focus:" events.
6001         * cspi/spi.h :
6002         Add some more API from Registry.idl that was missing,
6003         for keystroke listening, keystroke and mouse event
6004         synthesis, and enumeration of accessible desktops.
6005
6006 2001-08-16  Michael Meeks  <michael@ximian.com>
6007
6008         * configure.in: use AM_GLIB_GNU_GETTEXT.
6009
6010         * Makefile.am (SUBDIRS): kill intl.
6011
6012 2001-08-15  Michael Meeks  <michael@ximian.com>
6013
6014         * registryd/Makefile.am: s/oaf/server/ relocate info file.
6015
6016         * configure.in: upd.
6017
6018         * configure.in: depend on a recent bonobo-activation that
6019         will find our server files ...
6020
6021 2001-08-16  Bill Haneman <bill.haneman@sun.com>
6022
6023         * libspi/accessible.c : accessible_new() :
6024         Now we add the Component interface via bonobo_object_add_interface,
6025         if the contained AtkObject implements AtkComponent.
6026         * libspi/accessible.h : now include "component.h"
6027         * libspi/component.h :
6028         * libspi/component.c : added files - implementation of
6029         bonobo wrapper object for Accessibility/Component
6030         * libspi/listener.c :
6031         Added test code to check for Accessibility/Component:1.0
6032         interface and report whether it is implemented by the
6033         event source.
6034         * libspi/registry.c :
6035         Now we check for not only the hash of the whole event 
6036         string before relaying the event, we also check the
6037         "minor" event string (without the detail string).
6038         This allows event listeners to be registered against
6039         all events of a certain major+minor type, or just
6040         against a specific major+minor+detail type.
6041         * libspi/accessible.c :
6042         Added implementations for Accessible:get_parent(),
6043         Accessible:getChildCount(), and Accessible:getChildAtIndex().
6044         * libspi/registry.c :
6045         * libspi/listener.c :
6046         Replaced calls to Accessibility_Accessible_ref() and
6047         Accessibility_Accessible_unref() with 
6048         calls to bonobo_object_dup_ref() and 
6049         bonobo_object_release_unref(), so that the CORBA object
6050         is dup-ed and released when relayed, as well as the bonobo object.
6051
6052 2001-08-15  Mark McLoughlin <mark@skynet.ie>
6053
6054         * libspi/Makefile.am,
6055           registryd/Makefile.am,
6056           at-bridge/Makefile.am.
6057           test/Makefile.am, configure.in:
6058         reverse previous changes.
6059
6060         * /idl/Image.idl: fix typo.
6061
6062         * test/Makefile.am: put DEBUG_FLAGS
6063         in CFLAGS.
6064
6065 2001-08-15  Mark McLoughlin <mark@skynet.ie>
6066
6067         * test/app.c: use argv[0] instead of
6068         g_type_prgname.
6069
6070 2001-08-15  Mark McLoughlin <mark@skynet.ie>
6071
6072         * libspi/Makefile.am,
6073           registryd/Makefile.am,
6074           at-bridge/Makefile.am.
6075           test/Makefile.am, configure.in:
6076         cleanup, replace individual LIBS/CFLAGS with
6077         AT_COMMON_{LIBS|CFLAGS}.
6078
6079         * README: format.
6080
6081 2001-08-15  Mark McLoughlin <mark@skynet.ie>
6082         
6083         * configure.in, libspi/Makefile.am:
6084         Change IDL path checking for bonobo-activation
6085         as opposed to oaf.
6086
6087 2001-08-15  Bill Haneman <bill.haneman@sun.com>
6088
6089         * registryd/registry.c : separated event listeners to use
6090         3 separate lists (focus, window, toolkit).  Began testing
6091         event names against hashes before relaying events.
6092         * test/at.c : now register for events of type "focus:"
6093         * test/app.c : now generate events of type "focus:"
6094         * at-bridge/bridge.c : register with ATK for focus events,
6095         and we now relay those focus events to any "focus:" listeners.
6096         This now works with the bridge as a GTK_MODULE when running test/at.
6097         * libspi/registry.c :
6098         * libspi/listener.c : 
6099         now we ref event sources before propagating, and unref on receipt.
6100         * libspi/registry.c : 
6101         some changes to internal structs, to support event typestring hashes.
6102         * text/app.c : changed the way the appname is generated.
6103         * cspi : added directory that will hold the C bindings library for 
6104                 non-CORBA/bonobo-savvy clients.
6105         * cspi/spi.h : header file that contains the function prototypes for the C binding.
6106         * idl/Component.idl : added in parameter to indicate coord system for
6107                 geometry-related calls.
6108         * idl/Hyperlink.idl : added readonly n_links attribute
6109         * idl/Image.idl : changed methods to attributes.
6110         
6111 2001-08-15  Mark McLoughlin <mark@skynet.ie>
6112
6113         * at-bridge/Makefile.am: link against
6114         ../libspi/libspi.la instead of -lspi.
6115
6116         * at-spi/test/app.c: include 
6117         bonobo-activation.h. Use a default appname
6118         if one is not provided.
6119
6120 2001-08-14  Bill Haneman <bill.haneman@sun.com>
6121
6122         * idl/Registry.idl : temporarily changed register_Application
6123         to oneway, to work around issue with initial registration 
6124         re-entrancy.
6125         * idl/Application.idl : changed attribute "id" from readonly 
6126         to read-write, since it needs to be assigned by Registry.
6127         * registryd/registryd.c : added call to set application id 
6128         on registration.
6129         * registryd/registry.c : changed de-registration procedure to
6130         use CORBA_Object_hash() to find matching object ref in application
6131         lists and listener lists.
6132         * registryd/registry.c : defined EventTypeStruct and EventTypeMajor,
6133         began distinguishing between event types (work in progress).
6134
6135 2001-08-13  Bill Haneman <bill.haneman@sun.com>
6136
6137         CHANGES:
6138         * libspi/application.c:
6139         Added implementations for get/set id, get_toolkitName,
6140         get_version.
6141         * registryd/registryd.c :
6142         * test/at.c :
6143         * test/app.c :
6144         * Makefile.am :
6145         Converted from use of OAF to bonobo-activation.
6146         * libspi/desktop.h :
6147         * libspi/desktop.c :
6148         * test/app.c :
6149         Removed references to atksimpleobject, since base atkobject
6150         implementation now provides functionality we need.
6151         * libspi/atksimpleobject.c :
6152         * libspi/atksimpleobject.h :
6153         Removed.
6154         
6155         ADDITIONS:
6156         * at-bridge
6157         * at-bridge/Makefile.am
6158         * at-bridge/bridge.c
6159         * configure.in
6160         * Makefile.am
6161         Added directory "bridge" and contents, and added dependencies
6162         in Makefile.am/configure.in.  
6163         Initial checkin of "at-bridge".
6164         This code is a GTK_MODULE which automatically registers
6165         GTK+ apps with the accessibility registry, using an object
6166         reference to the root ATK object.
6167         
6168 2001-08-10  Mark McLoughlin <mark@skynet.ie>
6169
6170         * po/Makefile.in.in: Remove. Again. If this
6171         doesn't get autogenerated - you need to update
6172         gnome-common.
6173
6174 2001-08-07  Mark McLoughlin <mark@skynet.ie>
6175
6176         * po/Makefile.in.in: Add. Again.
6177
6178 2001-07-31  Bill Haneman <bill.haneman@sun.com>
6179
6180         * libspi/accessible.c : added support for 'description' property.
6181         * libspi/accessible.c
6182         * libspi/desktop.c
6183         * libspi/registry.c : changed to use bonobo_object instead of bonobo_x_object
6184             (since the two are now equivalent in libbonobo)
6185         * idl/Action.idl
6186         * idl/Component.idl
6187         * idl/Hyperlink.idl
6188         * idl/Image.idl
6189         * idl/Selection.idl
6190         * idl/Table.idl
6191         * idl/Text.idl
6192         * idl/Value.idl : changed these 'secondary' interfaces to inherit from
6193              Bonobo::Unknown as does Accessibility::Accessible.
6194         * idl/StreamableContent.idl : as above, and replaced internal InputStream
6195              interface with Bonobo::Stream, since it was redundant with it.
6196              (The Stream returned by a StreamableContext object is expected to
6197              implement only a subset of Bonobo::Stream)
6198
6199 2001-07-28  Anders Carlsson  <andersca@gnome.org>
6200
6201         * libspi/accessible.c (accessible_object_finalize): Change
6202           g_free to g_object_unref since the AtkObject is a GObject.
6203
6204 2001-07-30  Bill Haneman <bill.haneman@sun.com>
6205
6206         * idl/Accessibility.idl: add new IDL files
6207         
6208         Added:
6209         * idl/Action.idl: Definitions of actionable UI object
6210         * idl/Component.idl: Definitions of UI component geometry, etc.
6211         * idl/Hyperlink.idl: Defs of hyperlink behavior
6212         * idl/Image.idl: Def of accessible image
6213         * idl/Selection.idl: Definition of UI object with selectable children
6214         * idl/StreamableContent.idl: Definition of UI object with streamable backing data
6215         * idl/Table.idl: Definitions for access to table ('spreadsheet') elements
6216         * idl/Text.idl: Interface defs for UI elements with complex textual content
6217         * idl/Value.idl: Definition of UI element that is a value controller or display
6218         
6219 2001-07-27  Michael Meeks  <michael@ximian.com>
6220
6221         * po/Makefile.in.in: remove autogenerated file from CVS.
6222
6223         * libspi/Makefile.am: Radicaly re-vamp to simplify & add ORBit2
6224         type library.
6225
6226         * idl/Registry.idl: include guard.
6227
6228         * idl/Accessibility.idl: Add, and include all the other IDL
6229         files.
6230
6231         * idl/*.idl: remove mass of pragmas etc.
6232
6233 2001-07-26  Michael Meeks  <michael@ximian.com>
6234
6235         * registryd/Makefile.am (registryd_SOURCES): remove
6236         redundant at_.
6237
6238 2001-07-27  Mark McLoughlin <mark@skynet.ie>
6239
6240         * libspi/.cvsignore, registryd/.cvsignore,
6241           test/.cvsignore: updated.
6242
6243         * po/Makefile.in.in: gettext update.
6244
6245 2001-07-25  Bill Haneman <bill.haneman@sun.com>
6246
6247         * initial CVS checkin
6248
6249 2001-06-29  Michael Meeks  <michael@ximian.com>
6250
6251         * configure.in: add AM_CONFIG_HEADER to gen config.h
6252
6253         * acconfig.h: add.
6254