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