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