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