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