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