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