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