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