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