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