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