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