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