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