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