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