1 2003-06-10 Bill Haneman <bill.haneman@sun.com>
4 * configure.in: Version revved to 1.3.2, lt 0.9.2
5 Incremented ATK required version to 1.3.4.
8 (SPI_generateKeyEvent):
9 We now pass the keystring along if it's non-null.
11 * registryd/deviceeventcontroller.c:
12 (keysym_mod_mask): New method, returns modifier mask
13 required to generate a keysym from a given keycode.
14 (dec_synth_keysym): New method.
15 (dec_synth_keystring): New method.
16 (dec_get_modifier_state): New method.
17 (dec_lock_modifiers): New
18 (dec_unlock_modifiers): New.
19 (dec_keysym_for_unichar): New, rather brute-force
20 conversion from UCS-4 to X KeySyms. Only works for
21 Latin at the moment, with partial implementations for
22 Greek, Hebrew, and (incomplete) Katakana.
23 (impl_generate_keyboard_event): Now implement
24 "KEYSTRING" synthesis and implement "KEYSYM"
26 (keycode_from_keysym): Improved, passes a returned
27 modmask value now if the corresponding param is non-NULL.
29 Fixes bugs #92143 and #109776.
32 * test/keysynth-test.c:
33 New test program for key synthesis, to confirm fixes for
37 2003-06-10 Padraig O'Briain <padraig.obriain@sun.com>
39 * cspi/spi.h: Add relation SPI_RELATION_POPUP_FOR
41 * cspi/spi_accessible.c (cspi_init_relation_type_table):
42 Add line for RELATION_POPUP_FOR
44 * docs/reference/cspi/tmpl/spi_relation.sgml:
45 Add relation SPI_RELATION_POPUP_FOR
47 * docs/reference/cspi/tmpl/spi_stateset.sgml:
48 Change state SPI_STATE_INCONSISTENT to SPI_STATE_INDETERMINATE
50 * idl/Accessibility_Reloation.idl: Add RELATION_POPUP_FOR.
52 * libspi/relation.c (spi_init_relation_type_table):
53 Add line for RELATION_POPUP_FOR
55 2003-06-10 Padraig O'Briain <padraig.obriain@sun.com>
57 * cspi/atk-bridge/bridge.c (spi_atk_bridge_exit_func): Check if
58 there are still windows which have not been deleted and emit
59 window:deactivate, if necessary and window:destroy events.
60 This fixes bug #114370. The change on June 5th was not correct.
62 2003-06-09 Bill Haneman <bill.haneman@sun.com>
64 * configure.in: Revved to 1.3.3. (lt-version 9:2:9, .so.0.9.2)
67 (SPI_dupString): Allow dup-ing of a string such that it's safe to
69 New methods for client exception handling and interception.
70 (SPI_exceptionHandlerPush): New - push a handler onto the stack.
71 (SPI_exceptionHandlerPop): You guessed it...
72 (SPI_getSourceType): Return the type of object which offended.
73 (SPI_getExceptionCode): Return an enum code telling, possibly,
74 what sort of thing went wrong, i.e. DISCONNECT (object died), etc.
75 (SPIAccessibleException_getSource): get the source object for
76 exceptions that come from Accessibles, if SPIExceptionSourceType is
77 SPI_EXCEPTION_SOURCE_ACCESSIBLE.
78 (SPIException_getDescription): New, returns a string description of
79 the problem. [Not yet a stable ABI, strings are not frozen]
82 Added implementation details of opaque SPIException
86 Implementations of above. Also
87 (_cspi_exception_throw): new private method that
88 dispatches exceptions to handlers, called from cspi-bonobo.c
90 * cspi/bonobo/cspi-bonobo.c:
91 (cspi_check_ev): call _cspi_exception_throw.
92 Don't print a warning message if the exception has been
93 handled by _cspi_exception_throw.
95 2003-06-05 Padraig O'Briain <padraig.obriain@sun.com>
97 * cspi/atk-bridge/bridge.c (spi_atk_bridge_exit_func): Check if
98 there are still windows which have not been deleted and emit
99 window:deactivate, if necessary and window:destroy events.
100 This fixes bug #114370.
102 2003-06-03 Bill Haneman <bill.haneman@sun.com>
105 (cspi_accessible_is_a): Make non-fatal
106 if the object reference is dead.
108 Mon Jun 2 15:35:29 2003 Jonathan Blandford <jrb@redhat.com>
110 * cspi/spi_main.c: #include <stdio.h>
111 * test/simple-at.c: ditto
112 * test/event-listener-test.c: ditto
113 * test/screen-review-test.c: ditto
115 2003-05-30 Michael Meeks <michael@ximian.com>
117 * test/test-simple.c (main): use CORBA_ORB_perform_work
118 instead of an unnecessary linc_ call.
120 2003-05-20 Padraig O'Briain <padraig.obriain@sun.com>
122 * cspi/spi-statetypes.h, cspi/docs/tmpl/spi_stateset.sgml:
123 Add SPI_STATE_INDETERMINATE.
125 * cspi/spi_accessible.c (spi_state_to_corba): Add support for
128 * idl/Accessibility_State.idl: Add support for STATE_INDETERMINATE.
130 * libspi/stateset.c (init_state_type_tables): Add support for
133 2003-05-19 Padraig O'Briain <padraig.obriain@sun.com>
135 * configure: Update versions of atk and gail required.
136 This fixes bug #113268.
138 2003-05-02 Bill Haneman <bill.haneman@sun.com>
140 * configure.in: Revved micro version to 1.3.1 (because of build fix).
142 2003-05-02 Frederic Crozat <fcrozat@mandrakesoft.com>
144 * libspi/Makefile.am:
145 Ensure headers are generated before being used by c sources.
147 2003-05-01 Bill Haneman <bill.haneman@sun.com>
150 Simplified lt versioning rules.
151 Incremented version to 1.3.0, to indicate that we're on the
154 2003-04-29 Padraig O'Briain <padraig.obriain@sun.com>
156 * docs/reference/cspi/Makefile.am, docs/reference/idl/Makefile.am:
157 Add MKDB_OPTIONS=--outtput-format=xml
159 * docs/reference/cspi/at-spi-cspi-docs.sgml
160 docs/reference/idl/at-spi-idl-docs.sgml:
161 Convert to Docbook XML.
163 This fixes bug #111793.
165 2003-04-25 Padraig O'Briain <padraig.obriain@sun.com>
167 * cspi/spi-listener.h: Add documentation for AccessibleDeviceEventType,
168 AcccessibleKeyEventType, AccessibleKeyMaskType.
170 * cspi/spi-roletypes.h: Update documentation for AccessibleRole.
172 * cspi/state-types.h: Add documentation for AccessibleState.
174 * cspi/spi.h: Add documentation for AccessibleTextBoundaryType,
175 AccessibleTextClipType, AccessibleRelationType, AccessibleCoordType,
176 AccessibleKeySynthType, AccessibleKeyListenerSyncType,
177 AccessibleComponentLayer.
179 * cspi/spi_event.c, cspi/spi_registry.c, cspi/spi_text.c: Fix bugs
182 * docs/reference/cspi/at-spi-cspi-sections.txt: Add undefined symbols.
184 * docs/reference/cspi/tmpl/spi_registry.sgml: Add description of
185 Accessible. Add description of AccessibleEvent,
186 AccessibleEventListenerCB.
188 * docs/reference/cspi/tmpl/spi_event.sgml: Update with extra
191 * docs/reference/cspi/tmpl/spi_registry.sgml: Update with extra
192 documentation. Add description of AccessibleKeystrokeListenerCB,
193 AccessibleKeyEventMask, AccessibleModifierMaskType,
194 AccessibleKeyMaskType, AccessibleKeystroke, AccessibleDeviceEvent,
195 AccessibleDeviceEventMask, AccessibleDeviceListenerCB.
197 * docs/reference/cspi/tmpl/spi_stateset.sgml: Add description of
200 * docs/reference/cspi/tmpl/spi_text.sgml: Update with extra
203 This fixes bug #104730.
205 2003-04-24 Padraig O'Briain <padraig.obriain@sun.com>
207 * atk-bridge/bridge.c (spi_init_keystroke_from_atk_key_event):
208 Set is_text field of Accessibility_DeviceEvent data structure.
210 * cspi/bonobo/cspi-bonobo-listener.c (cspi_device_event): Set
211 is-text field of AccessibleDeviceEvent data structure.
213 This addresses part of bug #108666.
215 * registryd/devcieeventcontroller.c: Unset debug option.
217 2003-04-14 Padraig O'Briain <padraig.obriain@sun.com>
220 (cpi_initial_relation_type_table): New function which initializes
221 mapping between Accessibility_RelationType and AccessibleRelationType.
222 (cspi_relation_type_from_spi_relation_type): New function which
223 translates an Accessibility_RelationType into an AccessibleRelationType.
224 (AccessibleRelation_getRelationType): Use
225 cpi_relation_type_get_spi_relation_type to return correct value.
226 (spi_state_to_corba): Return correct type for default case.
228 * cspi/spi_registry.c (SPI_registerAccessibleKeyStrokeListener):
229 Use Accessibility_EventType instead of Accessibility_KeyEventType.
231 * cspi/cspi-bonobo-listener.c:
232 Remove semicolon after BONOBO_TYPE_FUNC. Add casts to avoid compiler
235 * libspi/accessible.c, libspi/action.c, libspi/application.c,
236 libspi/base.c, libspi/component.c, libspi.devicelistener.c,
237 libspi/editabletable.c, libspi/hyperlink.c, libspi/hypertext.c,
238 libspi/image.c, libspi/listener.c, libspi/selection.c,
239 libspi/stateset.c, libspi/table, libspi/text.c, libspi/value.c,
240 registryd/desktop.c, registryd/registry.c:
241 Remove semicolon after BONOBO_TYPE_FUNC_FULL.
243 * libspi/eventlistener.c
244 Remove semicolon after BONOBO_TYPE_FUNC.
247 Remove semicolon after BONOBO_TYPE_FUNC_FULL.
248 (spi_init_relation_type_table): Initialize using correct type.
250 * registryd/desktop.c:
251 Remove semicolon after BONOBO_TYPE_FUNC_FULL.
252 (spi_keystroke_from_x_key_event): Use Accessibility_EventType instead
253 of Accessibility_KeyEventType.
255 * test/key-listener-test.c (report_tab_key_event): Use fprintf
258 * tests/simple-at.c, tests/screen-review-test.c:
259 Add include for <strings.h>.
261 * tests.stress-test.c:
262 Add includes for <unistd.h> and <bonobo/bonobo-main.h>
264 These changes fix compiler warnings when using FORTE compiler on
265 Solaris; fixes bug #107479.
268 2003-04-10 Bill Haneman <bill.haneman@sun.com>
271 * configure.in: revved to 1.1.10
274 (SPI_KEYMASK_NUMLOCK): Added.
276 * registryd/deviceeventcontroller.c:
277 (spi_key_event_matches_listener): AND with a smaller
278 bitmask (as we should).
279 (spi_dec_translate_mask):
280 New method, sets the virtual NumLock modifier bit
281 if numlock is on. Eventually it can handle other virtual
282 modifier bits if needed, or other marshalling from
283 at-spi modifier masks to platform (X) masks.
284 (spi_dec_key_listener_new):
285 Call spi_dec_translate_mask to set up virtual mod bits
286 in the 'mask' field when creating a new listener struct.
287 (spi_dec_emit_modifier_event):
288 Set the virtual (i.e. NumLock) bits before emitting event.
289 (spi_controller_register_with_devices):
290 Query for the NumLock modifier 'physical' bit if Xkb is
291 present, for use in above methods.
295 2003-04-10 Bill Haneman <bill.haneman@sun.com>
297 * registryd/deviceeventcontroller.c:
298 (spi_keystroke_from_x_key_event):
299 Instead of checking to see if the keysym is
300 printable, check the string from XLookupString
301 if available, get the first unicode character from it,
302 and call g_unichar_isprint to determine whether the
303 is_text flag should be TRUE or FALSE.
307 2003-04-02 Padraig O'Briain <padraig.obriain@sun.com>
309 * atk-bridge/bridge.c: Add support for extended events
310 * cspi/spi_event.c: Add documentation and implementation for
312 * tests/event-listener-test.c: Add tests for extended events.
314 This fixes bugs #100424 and #100426.
316 2003-04-02 Padraig O'Briain <padraig.obriain@sun.com>
318 * configure.in: Add 100 to AT_SPI_BINARY_AGE and update calculation
319 of LT_CURRENT. This fixes bug #89350.
321 2003-04-01 Padraig O'Briain <padraig.obriain@sun.com>
323 * atk-bridge/bridge.c (spi_bridge_signal_listener): Add check for
324 number of signal parameter values before accessing them. This fixes
327 2003-04-01 Bill Haneman <bill.haneman@sun.com>
329 * configure.in: Fixed duplicate inclusion of -lspi.
330 * branched for gnome-2-2/HEAD.
331 [created tag "gnome-2-2"]
333 2003-03-07 Bill Haneman <bill.haneman@sun.com>
335 * configure.in: 1.1.9 release.
338 2003-03-07 Bill Haneman <bill.haneman@sun.com>
340 [needed by GOK, to fix bugs 107985 and 107988]
341 * registryd/deviceeventcontroller.c:
342 (spi_dec_clear_unlatch_pending):
343 New method, unsets the 'unlatch' mask for XkbStateNotifyEvents.
344 (spi_dec_set_unlatch_pending):Revised DEBUG comment.
345 (spi_dec_init_mouse_listener):Emit warning if mouse button
347 (spi_device_event_controller_forward_mouse_event):
348 Removed unnecessary parens from a conditional.
349 (global_filter_fn):Added TODO comment.
350 (impl_generate_keyboard_event):
351 Cancel a pending relatch if a 'delatching' key was
354 2003-03-07 Padraig O'Briain <padraig.obriain@sun.com>
356 * atk-bridge/bridge.c:
357 Change atk_signal_child_changed to atk_signal_children_changed.
358 Reorganize code in spi_atk_bridge_signal_listener().
360 * test/event-listener-test.c:
361 Add children_changed_listener and report_children_changed_event()
362 to test AccessibleChildEvent_getChildAccessible.
364 2003-03-05 Padraig O'Briain <padraig.obriain@sun.com>
366 * cspi/spi_event.c (cspi_internal_event_get_text): Change
367 g_strdup to CORBA_String_dup (bug #105291)
369 * test/event-listener-test.c (report_text_event): Add call to
372 2003-02-28 Bill Haneman <bill.haneman@sun.com>
374 * registryd/deviceeventcontroller.c:
375 (spi_keystroke_from_x_key_event):
376 Fix string and keysym return codes to match modifier state.
379 2003-02-28 Bill Haneman <bill.haneman@sun.com>
381 * registryd/deviceeventcontroller.c:
382 (spi_keystroke_from_x_key_event):
383 Fix segv due to improper use of isprint(c). [bug #107254]
385 2003-02-24 Bill Haneman <bill.haneman@sun.com>
388 (get_accessible_text_boundary_type):
389 Move default return value to (new) default case in switch.
390 (get_accessible_text_clip_type):
391 Move default return value to (new) default case in switch.
393 * libspi/application.c:
394 (lookup_toolkit_event_for_name, reverse_lookup_name_for_toolkit_event):
395 Remove unused methods.
396 (impl_accessibility_application_register_object_event_listener):
397 Remove unused methods.
400 Added #include of <math.h>.
402 * registryd/deviceeventcontroller.c:
403 (spi_dec_ungrab_mouse): Bracketed with #ifdefs, since
404 we don't currently use this method.
405 (spi_dec_init_mouse_listener): Don't call XkbGetMap unless
407 (impl_generate_key_event):
408 Remove unused variables.
409 (impl_generate_mouse_event):
410 Initialize button to zero, just in case we get an invalid
411 input. Added support for mouse buttons 4 and 5.
412 (spi_device_event_controller_new):
413 Removed unused variable declaration for 'private'.
415 Added #include of <gdk/gdk.h>
417 2003-02-14 Padraig O'Briain <padraig.obriain@sun.com>
419 * configure.in: Update to work when X is not installed in expected
420 location. Fixes bug #105836.
422 * atk-bridge/bridge.c
423 (spi_atk_bridge_init_event_type_consts): Look up "link-selected" for
425 (spi_atk_register_event_listener): Add signal listener for
427 (spi_atk_bridge_signal_listener): Event event when link-selected
428 signal is emitted. (bug #104622)
430 * cspi/spi_event.c (cspi_internal_event_get_text): Call g_strdup()
431 on returned string. (bug #105291)
433 * test/event-listener-test.c: Add test for link-selected.
435 2003-02-14 Padraig O'Briain <padraig.obriain@sun.com>
437 * atk-bridge/Makefile.am: Correct typo in previous commit.
439 2003-02-13 Padraig O'Briain <padraig.obriain@sun.com>
441 * atk-bridge/Makefile.am: Allow for build directory to be different
442 from source directory
444 * registryd/Makefile.am: Allow for build directory to be different
445 from source directory
449 2003-01-29 Bill Haneman <bill.haneman@sun.com>
452 Fixed dependencies for libcspi so that libspi gets pulled in
453 properly. Fixes 104741.
457 Clean up inline docs a little.
459 2003-01-27 Padraig O'Briain <padraig.obriain@sun.com>
461 * registryd/desktop.c: Implement AccessibleComponent for SpiDesktop.
462 This is done by implementing AtkComponent for SpiAtkDesktop, which is
463 the AtkObject within an SpiDesktop.
464 This addresses bug #101524.
466 * registryd/deviceeventcontroller.c (spi_device_event_controller_init):
467 Remove call to gdk_init().
469 * registryd/registry.c (spi_registry_init): Add call to gdk_init()
470 so that Display is set when SpiDesktop is created.
472 2003-01-21 Padraig O'Briain <padraig.obriain@sun.com>
474 * registryd/deviceeventcontroller.c: Add include of <sys/time.h>
475 This fixes bug #102830.
477 2003-01-15 Padraig O'Briain <padraig.obriain@sun.com>
479 * test/test-simple.c: Update to take account of fact that GailButton
480 now implements AtkText.
481 (create_text_window): Set name on AtkObject for GtkEntry.
482 (validate_accessible): Check accessible name before calling test_text().
484 * libspi/Makefile.am: Fix problem with building outside of source
485 directory. Bug #98120.
487 * cpsi/spi_table.c (AccessibleTable_getNSelectedColumns): Fix
488 typo in documentation comments. Bug #94275.
490 2003-01-15 Padraig O'Briain <padraig.obriain@sun.com>
492 * libspi/text.c (impl_getBoundedRanges): Bug fix.
494 2003-01-10 Padraig O'Briain <padraig.obriain@sun.com>
497 Add includes to avoid compiler warnings on Solaris.
498 (impl_getRangeExtents): Bug fix.
500 2002-12-17 Bill Haneman <bill.haneman@sun.com>
502 Fix for 100944, [API addition approved by Gman and murrayc].
509 * idl/Accessibility_Text.idl:
510 (Text::Range, Text::RangeList, TEXT_CLIP_TYPE): New typedefs
511 (Text::getRangeExtents): New method for efficient
512 bounds query of a text range.
513 (Text::getBoundedRanges): New method for efficient
514 clipping of text to bounding boxes.
515 (unImplemented7, unImplemented8):
516 Removed these padding methods to preserve bincompat.
519 (impl_getRangeExtents): implementation of new IDL.
520 (impl_getBoundedRanges): implementation of new IDL.
521 (SpiTextRect): Internal use struct.
522 (_spi_text_rect_union): internal method, calculates union of two
523 SpiTextRect bounding rects.
524 (_spi_text_range_seq_from_gslist): internal method, allows us
525 to build our sequence efficiently as a gslist then convert it
527 (_spi_bounds_contain): internal method, determines whether
528 a text character is "in" or "out" of a clip rect according to
529 values of TEXT_CLIP_TYPE.
530 (spi_text_class_init): Initialize the new methods in the epv.
533 (AccessibleTextClipType): New enum used by screen review api.
534 (AccessibleTextRange): New struct used by screen review api.
535 (AccessibleText_getRangeExtents):
536 cspi binding for Accessibility_Text_getRangeExtents.
537 (AccessibleText_getBoundedRanges):
538 cspi binding for Accessibility_Text_getBoundedRanges.
539 (AccessibleTextRange_freeRanges): convenience method.
542 (AccessibleText_getRangeExtents):
543 cspi binding for Accessibility_Text_getRangeExtents.
544 (AccessibleText_getBoundedRanges):
545 cspi binding for Accessibility_Text_getBoundedRanges.
546 (AccessibleTextRange_freeRanges): convenience method.
547 (get_accessible_text_clip_type): internal conversion method.
548 (get_accessible_text_ranges_from_range_seq): internal conversion method.
550 * registryd/deviceeventcontroller.c:
551 (spi_dec_mouse_check):
552 Improved behavior for mouse:abs events
553 [same granularity as mouse:rel events, and no
554 events when mouse is idle].
556 2002-12-16 Michael Meeks <michael@ximian.com>
558 * cspi/spi_accessible.c (spi_state_to_corba): rename.
560 * libspi/stateset.c (state_spi_to_atk): split out
561 ( fix several remote array bounds nasties )
562 (spi_atk_state_set_from_sequence, impl_contains, impl_add),
563 (impl_remove): make safe from array bounds issues.
564 (spi_atk_state_from_spi_state): impl.
566 * libspi/stateset.h (spi_state_set_cache_is_empty):
567 add a set of wrapper defines to get layering right.
569 * cspi/spi_accessible.c: update state set stuff to
572 2002-12-14 Michael Meeks <michael@ximian.com>
574 * atk-bridge/bridge.c (spi_atk_bridget_get_dec): impl.
575 to avoid 2 roundtrips to the registry per key event
576 (spi_atk_bridge_key_listener): upd.
577 (deregister_application): release the dec.
579 * registryd/registry.c (notify_listeners_cb):
580 bin lots of re-enterant complexity - we no longer
581 do a round-trip bonobo ref here, ensure that a single
582 listener's exception failure won't poison all other
584 (impl_registry_notify_event): bin obvious memory leak.
586 2002-12-13 Michael Meeks <michael@ximian.com>
588 * atk-bridge/bridge.c (spi_atk_bridge_focus_tracker):
589 init the ev so the error is meaningful.
590 (spi_atk_bridge_key_listener): ditto.
592 * cspi/spi_main.c (cspi_ev): init the ev so we start
593 with a clean slate, otherwise the first exception
596 * cspi/spi_text.c (get_accessible_text_boundary_type):
597 add a fallthrough for no warnings.
599 * cspi/spi_registry.c: prune unused warnings.
601 * cspi/spi_main.c (cspi_object_take): fix
602 mind-blowing brokenness ( by watching the compile
605 * cspi/spi_accessible.c (Accessible_getStateSet):
606 re-impl. to use an AtkStateSet.
607 (spi_state_type_from_accessible_state),
608 (init_state_table): bin these.
610 * libspi/stateset.c (spi_atk_state_set_from_sequence):
612 (atk_state_set_from_accessibility_state_set): here.
614 * cspi/spi_accessible.c (spi_state_to_atk): impl.
615 (AccessibleStateSet_contains, AccessibleStateSet_ref),
616 (AccessibleStateSet_unref, AccessibleStateSet_contains),
617 (AccessibleStateSet_add, AccessibleStateSet_remove),
618 (AccessibleStateSet_equals, AccessibleStateSet_compare),
619 (AccessibleStateSet_isEmpty): re-write to use a local
622 2002-12-13 Bill Haneman <bill.haneman@sun.com>
624 * configure.in: Revved to 1.1.7 (new keymask vals).
626 2002-12-10 Bill Haneman <bill.haneman@sun.com>
629 Added SPI_KEYMASK_MOD4 and SPI_KEYMASK_MOD5.
631 2002-12-10 Padraig O'Briain <padraig.obriain@sun.com>
634 (cspi_internal_event_get_object): Use CORBA_TypeCode_Equivalent()
635 to compare two CORBA_TypeCodes.
636 (cspi_internal_event_add): Silence warning from FORTE compiler.
638 * cspi/bonobo/cspi_bonobo-listener.h: Add function declarations to
639 avoid implicit declaration of functions.
641 2002-12-09 Padraig O'Briain <padraig.obriain@sun.com>
643 * atk-bridge/bridge.c:
644 (spi_atk_bridge_init_event_type_consts): Store signal id for
645 active-descendant-changed signal.
646 (spi_atk_register_event_listeners): Add signal listener for
647 active-descendant-changed signal,
648 (spi_atk_bridge_signal_listener): Move code in function
649 spi_atk-signal_emit_event() into this function.
650 Add support for active-descendant-changed
651 Update support for child-changed signal.
652 (spi_bridge_window_event_listener): Silence warning.
654 * libspi/spi_private.[ch]:
655 (spi_init_any_object): Change second parameter from CORBA_Object to
657 Omit call to CORBA_Object_duplicate().
658 Set CORBA_any's _value to CORBA_Object*.
660 2002-12-06 Bill Haneman <bill.haneman@sun.com>
666 (AccessibleEvent_ref, AccessibleEvent_unref):
667 New methods, for persisting an event outside the emission context.
668 Must be used if the new accessor methods are to be called
669 outside of the event listener's callback.
671 * cspi/bonobo/cspi-bonobo.c:
672 (cspi_dup_ref): Pass 'ev' to bonobo_object_dup_ref
673 as second parameter instead of NULL, so we can call
674 cspi_check_ev afterwards.
677 (cspi_object_take): New internal method,
678 converts a CORBA_Object reference to a hard ref on
679 an Accessible if possible, returning NULL if the object
680 reference is invalid or an Accessible * otherwise.
683 (AccessibleEvent_ref):
684 Increment the event's internal private refcount, and
685 add the event's internal struct to an internal cache
686 if it's not already there.
687 (AccessibleEvent_unref):
688 Decrement the event's refcount and remove it from
689 the cspi event cache if refcount==0.
690 (cspi_event_compare): New private method.
691 Compares two event structs via their ids. Used
693 (cspi_internal_event_lookup): New private method.
694 (cspi_internal_event_check): New private method,
695 a 0-order sanity check for events to make sure their
696 private data is intact.
697 (cspi_internal_event_add, cspi_internal_event_remove):
698 New private methods for managiing the event cache.
700 * cspi/bonobo/cspi-bonobo-listener.c:
702 Initialize the new private data elements (id, magic, ref_count).
704 * atk-bridge/bridge.c:
705 (spi_atk_bridge_signal_listener):
706 Fixed bug #100530, passing wrong params to emission func.
708 * registryd/deviceeventcontroller.c:
709 (spi_dec_button_update_and_emit):
710 Fixed type in mask bit operations; fix for #99799.
712 2002-12-02 Bill Haneman <bill.haneman@sun.com>
714 Removed some of the more dangerous workarounds from
715 previous commit; they are only needed by GOK, which
716 in reality should be using another method to accomplish
717 the goals. So on reconsideration some of the workarounds
720 * registryd/deviceeventcontroller.c:
721 (spi_keycodes_contain, spi_dec_init_keycode_list):
722 Removed these methods, used only by a nasty hack to try
723 and detect whether a key synthesis should be allowed
724 to reset the XKB latch state or not. This code was only
725 required to work around an interaction between GOK,
726 button events, and XKB.
727 (impl_generate_key_event):
728 Removed hack at end of key generation that tried to
729 "do the right thing" if XKB latch keys were generated
730 in the midst of button press/release pairs.
733 Added a check for HAVE_XINPUT. Not normally used yet.
735 2002-11-25 Bill Haneman <bill.haneman@sun.com>
737 Workarounds and fixes for mouse event/XKB interaction.
739 * registryd/deviceeventcontroller.c:
740 (spi_keycodes_contain, spi_dec_init_keycode_list):
741 New internal methods.
742 (spi_dec_set_unlatch_pending):
743 Split the method that tells XKB to expect an
744 unlatch (and revert it) out of the rest of the
745 event handling code. This method is called by the
746 two mouse event handlers (the poll and the filter).
747 (spi_dec_update_and_emit, spi_dec_mouse_check):
748 New methods split from spi_dec_poll_mouse_moved.
749 The second one is now called from inside the filterFn
750 when an XKB delatch event is received, to determine
751 whether to revert the delatch or not.
752 (spi_poll_mouse_moved): Refactor; also we can now
753 properly handle the case where multiple button states
754 have changed between polling cycles and we didn't get
755 notified due to another client's grab.
757 Synchronize the server while handling an XKB notification.
758 Ugly, but apparently necessary to avoid nasty races.
759 Check the mouse state on receipt of an XKB latch change,
760 to decide whether to revert the latch or not. (Latches are
761 reverted if there is an immediately preceding mouse button
762 event that a client has consumed, in which case we don't want
763 the user to see the side-effect of the event).
764 (spi_device_event_controller_forward_mouse_event):
765 Check for modifier events and fire before resetting mouse_mask_state,
766 prevents losing modifier events.
768 (impl_generate_keyboard_event):
769 If we've just generated a keyboard event for a non-shift key,
770 we don't want to revert the pending XKB latch.
771 Otherwise, check the modifier state (via a call to
772 spi_dev_mouse_check) and set the relatch mask to
773 that state before returning.
775 2002-11-24 Bill Haneman <bill.haneman@sun.com>
778 Updated NEWS (accidentally didn't make it into 1.1.5 tarball,
781 * atk-bridge/bridge.c:
782 (spi_atk_register_event_listeners):
783 Don't re-register for ATK events if the registry has died
784 and the app needs to re-register; the ATK listeners are in
785 process and doing so will cause duplicate emission.
787 * registryd/deviceeventcontroller.c:
788 (spi_poll_mouse_moved):
789 Reformat the source, detect and emit multiple button-change
790 events (i.e. if multiple buttons have changed between poll
792 Add code to detect mouse-down events even when the pointer
793 is grabbed; workaround for GOK bug 98420.
794 (spi_controller_register_with_devices):
795 Call XTestGrabControl with 'impervious' flag set to True,
796 allows us to synthesize events and query the pointer even during
797 an active grab by another client.
798 (spi_device_event_controller_forward_mouse_event):
799 Set the mouse_mask_state to the mouse_button_state from
800 the intercepted event, to synchronize the grab listener with
803 2002-11-20 Bill Haneman <bill.haneman@sun.com>
805 * cspi/spi_accessible.c:
806 (AccessibleRole_getName):
807 Added necessary strings for making this (deprecated)
808 method work with the new role types.
809 (init_role_table, role_table):
810 Added definition of SPI_ROLE_APPLICATION.
812 * libspi/spi-roletypes.h:
813 Added SPI_ROLE_APPLICATION.
815 * idl/Accessibility_Role.idl:
816 Added ROLE_APPLICATION.
818 * docs/reference/cspi/at-spi-cspi-decl.txt:
819 Added SPI_ROLE_APPLICATION to docs.
821 2002-11-20 Padraig O'Briain <padraig.obriain@sun.com>
823 * cspi/spi_accessible.c
824 (cspi_init_role_table): Do not write beyond end of role_table.
825 (Accessible_getRole): Use correct type for value returned by
826 Accessibility_Accessible_getRole().
828 * libspi/accessible.c (spi_init_role_lookup_table): Do not write
829 beyond end of role_table. (This fixes bug #98269)
831 * libspi/application.c: Add include file spi-private.h for
832 definition of spi_init_any_nil.
834 2002-11-19 Bill Haneman <bill.haneman@sun.com>
838 * libspi/spi-private.h:
839 Added DGB() macro, and extern int _dbg declaration.
841 * registryd/registry.c:
842 (definitions) storage for _dbg.
844 Get environment variable "AT_SPI_DEBUG".
845 (spi_registry_set_debug):
846 New method, to initialize _dbg value.
847 (spi_listener_struct_new, spi_registry_object_finalize):
848 (notify_listeners_cb):
849 Changed fprintfs to use DBG and g_warning().
851 * registryd/deviceeventcontroller.c:
852 (_deregister_keygrab, spi_controller_register_device_listener):
853 Changed debug/warning messages to use DBG macro.
857 Changed warning messages to use DBG macro and g_warning().
859 * atk-bridge/bridge.c:
860 (atk_bridge_init, spi_atk_bridge_get_registry):
861 (spi_atk_bridge_exit_func):
862 (spi_atk_bridge_property_event_listener):
863 Changed status, warning, and error messages to use
864 g_warning, g_message, and DBG macros.
867 Read the state of the AT_SPI_DEBUG environment variable
868 and set a local '_dbg' accordingly.
870 2002-11-19 Bill Haneman <bill.haneman@sun.com>
872 FIXES for 98836, 98842, other bugs.
875 Revved to 1.1.4, interface-age=4, binary-age=4.
877 * registryd/deviceeventcontroller.c:
879 Fixed crasher bug in last_mouse_pos initialization.
881 * registryd/registry.c:
882 (desktop_add_application, desktop_remove_application):
883 Added (and then commented out) some support for
884 object context marshalling. [TODO]
886 * atk-bridge/bridge.c:
887 (spi_atk_bridge_event_context_create):
888 Commented out object context creation until it can
889 be properly tested and debugged.
891 * registryd/registry.c:
892 (impl_registry_notify_event):
893 Fixed crasher bug, we were calling
894 spi_re_entrant_list_foreach () with an empty list.
896 2002-11-18 Bill Haneman <bill.haneman@sun.com>
898 * idl/Accessibility_Action.idl:
899 * idl/Accessibility_Component.idl:
900 * idl/Accessibility_Desktop.idl:
901 * idl/Accessibility_Event.idl:
902 * idl/Accessibility_Hyperlink.idl:
903 * idl/Accessibility_Image.idl:
904 * idl/Accessibility_Relation.idl:
905 * idl/Accessibility_Selection.idl:
906 * idl/Accessibility_State.idl:
907 * idl/Accessibility_Value.idl:
908 Updated unimplemented slot count to minimum of
909 four for all interfaces, for ABI freeze.
911 * idl/Accessibility_EditableText.idl:
912 * idl/Accessibility_Text.idl:
913 Updated unimplemented slot count to six
916 * idl/Accessibility_Registry.idl:
917 Updated unimplemented slot count to six
918 (also for DeviceEventController),
921 * idl/Accessibility_Table.idl:
922 Updated unimplemented slot count to eight,
925 * idl/Accessibility_Event.idl:
926 Added CORBA_any "any_data" member to Event struct.
928 * idl/Accessibility_Event.idl:
929 Added CORBA_any "any_data" member to Event struct.
931 * atk-bridge/bridge.c:
933 atk_signal_text_changed, atk_signal_child_changed,
934 signal ids queried from gtype system.
935 (AtkBridgeEventContextType): New enum.
936 (AtkBridgeEventContextData): New struct.
937 (AtkBridgeEventContext): New struct.
938 (atk_bridge_init_event_type_consts):
939 New method, initializes type contants for comparison
940 prior to emit_eventv.
941 (atk_bridge_event_context_init): New method,
942 initializes a CORBA_any from an AtkBridgeEventContext.
943 (atk_bridge_focus_tracker): Call spi_init_any_nil to
944 initialize the event.any_data struct.
945 (spi_atk_bridge_event_context_create): New method,
946 creates an AtkBridgeEventContext from signal/event info.
947 (spi_atk_bridge_event_context_free): New method.
948 (spi_atk_emit_eventv): Changed to take an
949 AtkBridgeEventContext parameter. We now initialize
950 the event.any_data member prior to notifying the
951 Registry, via the AtkBridgeEventContext.
952 (spi_atk_bridge_property_event_listener):
953 (spi_atk_bridge_state_event_listener):
954 Match emit_eventv signature.
955 (spi_atk_bridge_object_event_listener):
956 Match emit_eventv signature, and create an
957 event context from the event details.
958 Free the event context afterwards.
959 (spi_atk_bridge_window_event_listener):
960 Create an event context, pass it to the
964 (AccessibleEvent_getContextString):
965 (AccessibleEvent_getContextObject):
966 New methods, allow query of AccessibleEvent objects
967 for more context details (via the "any_data" member
968 of the Event struct, above).
971 Definitions for AccessibleEvent_getContextString
972 and AccessibleEvent_getContextObject.
974 * cspi/spi_listener.h:
975 (InternalEvent): New struct.
978 (AccessibleEvent_getContextString):
979 (AccessibleEvent_getContextObject):
980 Implementations of new methods, for obtaining
981 additional context information from some event types.
983 * cspi/spi_registry.c:
984 (SPI_registerGlobalEventListener):
985 Added mention of active-descendant-changed event in docs.
987 * cspi/cspi-bonobo-listener.c:
989 Marshal the any into the AccessibleEvent via
992 * libspi/spi-private.h:
993 #include <orbit/orbit.h>
995 (spi_init_any_string):
996 (spi_init_any_object):
997 New convenience function declarations.
1001 (spi_init_any_string):
1002 (spi_init_any_object):
1003 New convenience function implementations.
1005 * registryd/deviceeventcontroller.c:
1006 (spi_poll_dec_mouse_moved):
1007 (spi_device_event_controller_forward_mous_event):
1008 Initialize any_data member of event.
1009 (spi_deregister_controller_device_listener):
1010 Fix incorrect param pass which was preventing deregistration.
1012 * registryd/registry.c:
1013 (desktop_add_application):
1014 (desktop_remove_application):
1015 Add object data to event's any_data before dispatch.
1017 Fix for error messages from GAIL.
1019 * test/event-listener-test.c:
1020 Test new ContextString and "any_data" API:
1021 (report_text_event): New method query and output context string.
1022 (main): register a new text listener with report_text_event
1025 2002-11-19 Darren Kenny <darren.kenny@sun.com>
1027 Fixes for bugs 98127 and 97914.
1028 * cspi/spi-roletypes.h:
1029 Added SPI_ROLE_HEADER, SPI_ROLE_FOOTER, SPI_ROLE_PARAGRAPH,
1031 * cspi/spi-statetypes.h:
1032 Added SPI_STATE_MANAGES_DESCENDANTS
1034 Added SPI_RELATION_FLOWS_TO, SPI_RELATIONS_FLOWS_FROM,
1035 SPI_RELATION_SUBWINDOW_OF, SPI_RELATION_EMBEDS, SPI_RELATION_EMBEDDED_BY
1036 * cspi/spi_accessible.c:
1037 Added mapping in role_table from new Accessibility_ROLE_* to SPI_ROLE_*
1038 Added mapping from SPI_STATE_MANAGES_DESCENDANTS to
1039 Accessibility_STATE_MANAGES_DESCENDANTS
1040 * libspi/accessible.c:
1041 Added Mapping from ATK_ROLE_{FOOTER,HEADER,PARAGRAPH,RULER} to
1042 Accessibility_ROLE_{FOOTER,HEADER,PARAGRAPH,RULER}
1043 As requested by Bill, I also cleaned up the alignment.
1044 * libspi/relation.c:
1045 Added mapping of the ATK_RELATION_{FLOWS_TO,FLOWS_FROM,SUBWINDOW_OF,
1046 EMBEDS,EMBEDDED_BY} to equivalend Accessibility_RELATION_*
1047 * libspi/stateset.c:
1048 Added mappings between ATK_STATE_MANAGES_DESCENDANTS and
1049 Accessibility_STATE_MANAGES_DESCENDANTS
1050 * docs/reference/cspi/tmpl/spi_accessible.sgml:
1051 Document changes reflecting modifications to roles.
1052 * docs/reference/cspi/tmpl/spi_relation.sgml:
1053 Document changes reflecting modifications to relations.
1054 * docs/reference/cspi/tmpl/spi_stateset.sgml:
1055 Document changes reflecting modifications to states.
1057 2002-11-17 Bill Haneman <bill.haneman@sun.com>
1060 Revved to 1.1.3, interface-age=3, binary-age=3.
1061 Added REBUILD macro.
1064 Removed accessx-gui from the tests, since we have a nice
1065 keyboard accessibility capplet now :-)
1067 * test/keysynth-demo.c:
1068 (increment_scan): removed do-nothing default: case,
1071 * test/visual-bell.c:
1072 (main) : removed do-nothing default: case,
1075 * cspi/spi_action.c:
1076 (AccessibleAction_getKeyBinding_):
1077 Documented keybinding string format.
1081 (AccessibleText_getAttributes):
1082 Documented the text attribute string format.
1083 It's changed to use semicolon delimiters also,
1084 to prevent clashes with CSS attributes, but the old
1085 trick of looking for ", " strings will still work
1086 (as unreliably as ever). Fix for bug related to 97916.
1089 Include <cspi/bonobo/cspi-bonobo-listener.h>
1090 Fixes build warning.
1091 (SPI_freeAccessibleKeySet):
1092 (AccessibleKeystrokeListener_addCallback):
1093 (AccessibleKeystrokeListener_removeCallback):
1094 Modify to use AccessibleDeviceListener API internally,
1095 instead of AccessibleKeystrokeListener.
1097 * idl/Accessibility_Event.idl:
1098 Added two more empty slots to EventListener (for a total of four).
1100 * idl/Accessibility_Accessible.idl:
1101 Added four empty slots to Accessible interface.
1103 2002-11-15 Bill Haneman <bill.haneman@sun.com>
1105 * idl/Accessibility_Registry.idl:
1106 (KeyEventType, EventType):
1107 Marked KeyEventType as deprecated; it duplicates
1108 functionality of EventType, which has been extended to
1109 include Mouse-button events.
1110 (KeyEventTypeSeq): defined in terms of EventType.
1111 (registerDeviceEventListener, deregisterDeviceEventListener):
1112 New methods, for managing listeners to device events,
1113 which potentially may consume them.
1116 Added definition for AccessibleDeviceListener.
1118 * cspi/spi-listener.h:
1119 (enum AccessibleDeviceEventType):
1120 Added SPI_BUTTON_PRESSED and SPI_BUTTON_RELEASED.
1121 Typedef'd AccessibleKeyEventType to AccessibleDeviceEventType
1122 for backwards compat.
1123 (AccessibleKeystroke): Renamed AccessibleKeystroke to AccessibleDeviceEvent,
1124 and typedef'd AccessibleKeystroke to it for back-compat.
1125 (AccessibleDeviceListenerCB):
1126 New function prototype typedef.
1129 (AccessibleDeviceEventMask): New typedef.
1130 (AccessibleModifierMaskType): New typedef (renamed from AccessibleKeyMaskType).
1131 (AccessibleKeyMaskType):
1132 Set equivalent to AccessibleModifierMaskType for back-compat.
1133 (SPI_createAccessibleKeystrokeListener):
1134 (AccessibleKeystrokeListener_unref):
1135 Deprecated in favor of equivalent (better-named) new API below..
1136 keystroke listeners are like all device listeners.
1137 (SPI_createAccessibleDeviceListener, AccessibleDeviceListener_unref)
1138 New API names for old features :-).
1139 (AccessibleDeviceListener_addCallback):
1140 (AccessibleDeviceListener_removeCallback):
1141 (SPI_registerDeviceEventListener):
1142 (SPI_deregisterDeviceEventListener):
1146 (SPI_createAccessibleKeystrokeListener):
1147 Use new preferred API, cspi_device_listener_new() and
1148 cspi_device_listener_add_cb().
1149 (AccessibleKeystrokeListener_removeCallback):
1150 Use new preferred API, cspi_device_listener_remove_cb().
1151 (AccessibleKeystrokeListener_unref):
1152 Use new preferred API, cspi_device_listener_unref().
1153 (SPI_createAccessibleDeviceListener):
1154 (AccessibleDeviceListener_addCallback):
1155 (AccessibleDeviceListener_removeCallback):
1156 Implementation of new API.
1158 * cspi/spi_registry.c:
1159 (SPI_registerDeviceEventListener):
1160 (SPI_deregisterDeviceEventListener):
1161 Implementation of new API. Fixed memory leak and removed need to
1162 allocate EventTypeSeq (thanks Michael for catching this).
1163 Squashed a wayward CORBA_exception_free that shouldn't get called.
1165 * cspi/bonobo/cspi-bonobo-listener.c:
1167 Changed union (bin-and-api-compatibly) to refer to AccessibleDeviceListenerCB.
1168 (cspi_key_event): renamed to cspi_device_event().
1169 Internal use of CSpiKeystrokeListener changed to CSpiDeviceListener.
1170 Extended to handle mouse button events as well as key events.
1171 (CSpiKeystrokeListener):
1172 Class superceded by CSpiDeviceListener.
1173 (cspi_keystroke_listener_add_callback, cspi_keystroke_listener_get_corba):
1174 These internal APIs changed to "*device_listener" from "*keystroke_listener".
1176 * cspi/bonobo/cspi-bonobo-listener.h:
1177 (CSpiKeystrokeListener):
1178 Class superceded by CSpiDeviceListener.
1179 (cspi_keystroke_listener_add_callback, cspi_keystroke_listener_get_corba):
1180 These internal APIs changed to "*device_listener" from "*keystroke_listener".
1182 * libspi/Makefile.am:
1183 Replaced keystrokelistener.h and keystrokelistener.c
1184 with devicelistener.h and devicelistener.c; keystrokelisener.h
1185 stub retained for back-compat.
1187 * libspi/keystrokelistener.c:
1191 Replaced inclusion of keystrokelistener.h with devicelistener.h.
1193 * registryd/deviceeventcontroller.c:
1194 (DEControllerListener): Added Accessibility_EventTypeSeq member.
1195 (DEControllerKeyListener): Removed Accessibility_KeyEventTypeSeq member.
1196 (DEControllerPrivateData): Added xkb settings data.
1197 (spi_dec_poll_mouse_moved): Changed to dispatch device events for
1198 button release events (which can't be captured via XGrabButton).
1199 Don't dispatch via the 'normal' event mechanism if the device event was
1201 (spi_dec_key_listener_new, spi_key_listener_clone, spi_key_listener_data_free):
1202 Handle the typeseq data in its new location (see above).
1203 (spi_dec_listener_new, spi_listener_clone, spi_listener_clone_free):
1204 New methods, for "generic" device listeners.
1205 (spi_controller_register_device_listener):
1206 Now handle mouse event listeners as well as key listeners.
1207 (spi_controller_notify_mouselisteners):
1208 New internal method.
1209 (spi_device_event_controller_forward_mouse_event):
1210 Now we notify mouse device listeners as well as generating the
1211 non-consumable "mouse:" events.
1213 We must check and restore the XKB
1214 modifier map if we consume the event, since the act of triggering
1215 a mouse event will normally reset the XKB latch. This is required for
1217 (spi_controller_register_with_devices):
1218 Load the XKB settings when registering, and register for XKB
1219 state notify events.
1220 (spi_key_eventtype_seq_contains_event):
1221 Renamed spi_eventtype_seq_contains_event, since it's used
1222 internally for all device event types now.
1223 (spi_key_event_matches_listener):
1224 Uses spi_eventtype_seq_contains_event now.
1225 (spi_device_event_controller_object_finalize):
1226 Free the private data and the XkbKeyboard struct.
1227 (impl_register_device_listener, impl_deregister_device_listener):
1228 Implementation of new IDL.
1229 (spi_deregister_controller_device_listener):
1230 New internal method.
1231 (dec_xkb_get_slowkeys_delay dec_xkb_get_bouncekeys_delay):
1232 More efficient implementation, we don't have to create a new
1233 XkbControls structure every time we query.
1234 (spi_device_event_controller_class_init):
1235 Initialize the epv entries for the new IDL. Assign the
1236 "spi-dec-private" quark.
1237 (spi_device_event_controller_init):
1238 Initialize the private data.
1239 (spi_device_event_controller_forward_key_event):
1240 Removed a bogus CORBA_exception_free() call.
1242 * registryd/deviceeventcontroller.h:
1243 Replaced inclusion of keystrokelistener.h with
1246 * test/event-listener-test.c:
1247 (report_mouse_event):
1250 Added mouse-event device listener.
1252 * test/test-simple.c:
1253 (create_test_window):
1254 Fixed regression (we were instantiating a GtkRange,
1255 which is now an abstract class). Also fixed to match
1256 existing AtkRole names, this seems to have changed in ATK
1257 awhile ago; too late now I think, and the new
1258 mechanism is at least elegant and consistent with the
1259 glib enum "nick" APIs.
1261 2002-11-15 Darren Kenny <darren.kenny@sun.com>
1263 * idl/Accessibility_Relation.idl:
1264 add RELATION_FLOWS_TO,RELATION_FLOWS_FROM,RELATION_SUBWINDOW_OF,
1265 RELATION_EMBEDS,RELATION_EMBEDDED_BY
1266 * idl/Accessibility_Role.idl:
1267 add ROLE_HEADER, ROLE_FOOTER, ROLE_PARAGRAPH, ROLE_RULER
1268 * idl/Accessibility_State.idl:
1269 add STATE_MANAGES_DESCENDANTS
1270 * test/event-listener-test.c:
1271 Added a listener for active-descendant events.
1273 2002-11-15 Padraig O'Briain <padraig.obriain@sun.com>
1275 * atk-bridge/bridge.c
1276 (atk_bridge_init): If application is Bonobo component wait until top
1277 level is added before registering
1278 (spi_atk_bridge_do_registration): New function which contains code,
1279 formerly in atk_bridge_init, to do application registration.
1280 (spi_atk_bridge_toplevel_added): Signal called when top level
1281 added to Bonobo component
1283 This fixes bug #83134.
1285 2002-10-23 Vitaly Tishkov <tvv@sparc.spb.su>
1287 * registryd/deviceeventcontroller.c
1288 Fixed compilation error caused by calling gettimeofday()
1291 2002-10-18 Bill Haneman <bill.haneman@sun.com>
1296 Added template for HAVE_XKB.
1299 Changes to check for XKB, and to set the HAVE_XKB #define if it
1302 * libspi/listener.c:
1303 ()impl_notify_event): Make failure to get event source name
1306 * registryd/deviceeventcontroller.c:
1307 (#include): include X11/XKBlib.h.
1308 (DEControllerPrivateData) : New struct.
1309 (dec_xkb_get_slowkeys_delay) (dec_xkb_get_boucekeys_delay) :
1311 (dec_synth_keycode_press) (dec_synth_keycode_release):
1312 New methods; split the key synthesis code into these methods.
1313 They check XKB settings before determining the "time" values to
1314 pass to Xtest; this fixes bug #95828.
1315 (impl_generate_keyboard_event): Changed to use methods above,
1316 instead of callng Xtest directly.
1317 (spi_device_event_controller_init): Initialize new privae struct s
1319 (spi_device_event_controllr_object_finalize):
1320 Free the (new) private data.
1322 * registryd/deviceeventcontroller.h:
1323 Add new gpointer to end of struct data.
1325 2002-10-16 Bill Haneman <bill.haneman@sun.com>
1328 Incremented revision to 1.1.2, SONAME is still '.so', library
1329 extensions are ".so.0.0.2".
1331 * registryd/deviceeventcontroller.c:
1332 FIXES FOR #93592 and #95940.
1333 (statics): renamed mouse_button_state to mouse_mask_state,
1334 added key_modifier_mask.
1335 (spi_dec_poll_mouse_moved):
1336 Added key modifier checks, and emit "keyboard:modifiers"
1337 events when the key modifiers currently in use change.
1338 Also generate "mouse:abs" events periodically, even if the mouse
1339 is stationary (should we?).
1340 Alternatively we could generate "mouse:abs" events for either all
1341 mouse movements, or every 'nth' mouse movement, or at the
1342 beginning and end of every "active" mouse period.
1344 * test/event-listener-test.c:
1345 (main): Added listener for "keyboard:modifiers" events.
1347 2002-10-15 Bill Haneman <bill.haneman@sun.com>
1349 * libspi/keymasks.h:
1350 Added key mask #defines for mouse buttons; e.g.
1351 SPI_KEYMASK_BUTTON1, etc.
1354 Incremented dependency on ATK to version 1.1.0. (This dependency
1355 is probably premature but will soon be real enough).
1357 2002-10-11 Padraig O'Briain <padraig.obriain@sun.com>
1359 * libspi/hyperlink.[ch]
1360 (spi_hyperlink_new): Change parameter from AtkObject to AtkHyperlink.
1361 (get_hyperlink_from_servant): Check object is AtkHyperlink not
1364 * libspi/hypertext.c (impl_getLink): Remove cast of AtkHyperlink to
1369 2002-10-10 Padraig O'Briain <padraig.obriain@sun.com>
1371 * registryd/deviceeventcontroller.c
1372 (global_filter_fn): Correct typo which caused KeyPress and KeyRelease
1373 events to be ignored.
1374 (spi_controller_update_key_grabs): Use GrabModeSync for pointer_mode
1375 keyboard_mode so that XAllowEvents() can be called.
1379 2002-10-08 Padraig O'Briain <padraig.obriain@sun.com>
1381 * cspi/spi-accessible.c: Correct names of roles returned by
1382 AccessibleRole_getName(). Fixes bug #95055.
1384 2002-10-03 Padraig O'Briain <padraig.obriain@sun.com>
1386 * cspi/spi_main.c (report_leaked_ref): Report address of leaked
1389 * registryd/registry.c
1390 (desktop_remove_application: Write diagnostic message to stderr for
1393 (impl_accessibility_registry_deregister_global_event_listener):
1394 Correct size of lists array. This addresses bug #94555).
1396 2002-09-24 Padraig O'Briain <padraig.obriain@sun.com>
1398 * libspi/accessible.c (spi_init_role_lookup_table): Correct typos
1401 2002-09-19 Padraig O'Briain <padraig.obriain@sun.com>
1403 * registryd/Makefile: Add CLEANFILES so that .server file is removed
1406 * registryd/registry.c (impl_registry_notify_event): Remove
1407 unnecessary call to parser_event_type().
1409 * docs/reference/cspi/tmpl/spi_component.sgml:
1410 Add reference to SPI_LAYER_WINDOW.
1412 2002-09-17 Padraig O'Briain <padraig.obriain@sun.com>
1414 * registryd/registry.c
1415 (desktop_add_application): Remove leak.
1416 (desktop_remove_application): Remove leak.
1417 (parser_event_type): Remove leak.
1419 2002-09-16 Padraig O'Briain <padraig.obriain@sun.com>
1421 * registryd/deviceeventcontroller.c (spi_dec_mouse_moved): Removed
1422 bogus call to CORBA_string_dup(). Also removed unnecessary
1423 g_string_dup/g_free calls.
1425 2002-09-13 Bill Haneman <bill.haneman@sun.com>
1427 * registryd/deviceeventcontroller.c:
1428 spi_dec_mouse_moved: Fixed memory leaks and reordered 2 code blocks.
1430 * test/event-listener-test.c:
1431 main: commented out three redundant listeners, to reduce output
1432 noise. (They still are potentially useful for testing).
1435 2002-09-13 Michael Meeks <michael@ximian.com>
1437 * Update all the copyrights to include Ximian.
1439 2002-09-06 Mark McLoughlin <mark@skynet.ie>
1441 * cspi/spi.h: add SPI_LAYER_WINDOW.
1443 * cspi/spi_component.c: (AccessibleComponent_getLayer):
1444 add Accessibility_LAYER_WINDOW case.
1446 * idl/Accessibility_Component.idl: add LAYER_WINDOW.
1448 * libspi/component.c: (impl_accessibility_component_get_layer):
1449 add ATK_LAYER_WINDOW case.
1451 2002-08-28 Bill Haneman <bill.haneman@sun.com>
1453 * configure.in: incremented micro version.
1455 * branched for gnome-2-0 (a gnome-2-0-0 branch already exists).
1457 2002-08-20 Bill Haneman <bill.haneman@sun.com>
1460 Clarified and reworded our commit policy.
1463 Started an API "todo" addition list for 2.2.
1466 (impl_getSelection):
1467 Free char pointer from atk_text_get_selection, which was being leaked.
1469 2002-08-19 Bill Haneman <bill.haneman@sun.com>
1472 Small revision to author acknowledgement.
1474 2002-08-19 Padraig O'Briain <padraig.obriain@sun.com>
1476 * atk-bridge/bridge.c (spi_atk_bridge_signal_listener):
1477 If signal has detail add it to the type of the event.
1480 2002-08-12 Michael Meeks <michael@ximian.com>
1482 * test/test-simple.c (global_listener_cb): bin bogosity.
1483 (test_keylisteners): disable, still doesn't work reliably,
1484 certainly not on my system anyway.
1486 * atk-bridge/bridge.c (spi_atk_bridge_key_listener):
1487 don't leak a reference on the DEC. This round-trip
1488 fetching of the DEC per keystroke sucks, it should be
1491 * cspi/spi-private.h,
1492 * cspi/cspi-lowlevel.h,
1493 * cspi/bonobo/cspi-bonobo-listener.[ch],
1494 * cspi/bonobo/cspi-bonobo.c: get the copyright
1495 notices better - there is still a large amount of
1496 work in at-spi falsely attributed solely to Sun.
1498 * cspi/spi_main.c (cspi_object_ref): kill bogus
1499 hash lookup, just increment the ref.
1500 (SPI_freeString): make explicit the fact that we
1501 handle NULL strings just fine.
1502 (report_leaked_ref): obey coding standards.
1503 (cspi_object_hash, cspi_object_equal): kill retval.
1504 (cspi_object_release): only release if not on loan.
1505 (cspi_object_get_ref): add 'loan' concept, bin 'do_ref'.
1506 (cspi_object_borrow, cspi_object_return): impl.
1508 * cspi/bonobo/cspi-bonobo-listener.c (cspi_event):
1509 use cspi_object_borrow / return.
1511 2002-08-12 Darren Kenny <darren.kenny@sun.com>
1513 * cspi/bonobo/cspi-bonobo-listener.c:
1515 Don't call cspi_oject_new() because this is creating a new Accessible
1516 every single time that an event is fired. This causes ATs like at-poke
1517 to nolonger recognise the source of the event and thus ignore it.
1518 Re-use the object from the cache, ref it and then unref it after the
1519 listeners have been called.
1521 2002-08-06 Darren Kenny <darren.kenny@sun.com>
1523 * test/event-listener-test.c:
1524 Added command-line options to disable mouse events (m) and
1527 2002-07-31 Padraig O'Briain <padraig.obriain@sun.com>
1529 * configure.in: Update required versions of ATK, GTK+ and GAIL
1531 * cspi-1.0.pc.in: Add dependency for X include files
1534 * cspi/bonobo/Makefile.am:
1535 Add $(X_CFLAGS) so that X include files
1536 are picked up even if not in standard place (bug #71686)
1538 2002-06-25 Bill Haneman <bill.haneman@sun.com>
1540 * registryd/deviceeventcontroller.c: fix for 84261
1541 (spi_dec_mouse_moved):
1542 Added test of mouse button mask, so that we can detect mouse
1543 button release. Unfortunately we can't otherwise detect mouse
1544 button release events without consuming the mouse press event,
1545 because of the way XGrabButton works. This means that our mouse
1546 release events have a latency dependent on the polling period
1547 while the mouse button is down. At least in this case we only
1548 have to poll while the button is down, and not at other times.
1549 If the button masks don't match with what the last press event
1550 reported, we report the appropriate button release event.
1551 (spi_dec_ungrab_mouse):
1552 New method (not yet called).
1553 (spi_device_event_controller_forward_mouse_event):
1554 New method, sends mouse press event from GdkFilter.
1555 (spi_dec_init_mouse_listener):
1556 Added code to call XGrabButton, redirecting mouse button events to
1557 the root window and our Gdk event loop.
1559 Added code to filter mouse button events, and reordered.
1561 * test/event-listener-test.c:
1563 Added registration for mouse events of type "mouse:button".
1565 2002-06-25 Bill Haneman <bill.haneman@sun.com>
1567 * registryd/deviceeventcontroller.c: partial fix for 84261
1568 (spi_dec_poll_mouse_idle):
1569 New method, a timeout which checks to see if the mouse
1571 (spi_dec_poll_mouse_moving):
1572 A timeout to be called when mouse motion is underway.
1573 (spi_dec_poll_mouse_moved):
1574 A method which fires an event if the mouse has moved, and reports
1575 whether or not it did so.
1576 (spi_dec_init_mouse_listener):
1577 A method which sets up the timeouts above.
1578 (spi_device_event_controller_new):
1579 Now calls spi_dec_init_mouse_listener.
1581 * registryd/registry.c:
1582 (spi_registry_init):
1583 Now we initialize the device event controller when the registry is
1584 initialized, instead of waiting until a client has requested a key
1585 event notification; this is because we need the event controller
1586 for mouse events, but the mouse event registration API is a
1587 "registry" call and doesn't explicitly call the
1588 deviceeventcontroller.
1589 We now report mouse motion events with a 100 ms idle latency and
1590 a 20 ms granularity when motion is in progress.
1592 * test/event-listener-test.c:
1594 We now register the "detail listener" for events of type
1595 "mouse:rel" and "mouse:abs" (Note, mouse-abs events generally are
1596 delivered only for the first mouse event received, and thereafter
1597 "mouse:abs" events are delivered.)
1599 * cspi/spi_registry.c:
1600 DOCS: Documented the above mouse event typestrings.
1602 2002-06-21 Bill Haneman <bill.haneman@sun.com>
1604 Happy Summer Solstice...
1606 * registryd/deviceeventcontroller.c: [fix for bug 84100]
1607 (spi_controller_notify_keylisteners):
1608 Changes to remove a listener from the listener list, freeing its
1609 open keygrabs, if a notification to that listener fails. This
1610 means that although a dead listener can continue to hold a passive
1611 keygrab, a maximum of one dispatch to such a listener can fail
1612 before the listener is removed from the list, thus the keygrab
1613 will be released on the next occurrence.
1614 As part of this fix:
1615 (spi_notify_keylisteners):
1616 Renamed to spi_controller_notify_keylisteners, as the controller
1617 instance must now be passed as an argument.
1618 The copied 'notify' GList is now a list of DEControllerKeyListener
1619 objects, since we need more than just the CORBA reference if a
1620 notify fails and we need to deregister the listener.
1621 (impl_notify_listeners_sync):
1622 (impl_notify_listeners_async):
1623 (spi_device_event_controller_forward_key_event):
1624 Modify use of notify_keylisteners in accordance with above
1626 (spi_deregister_controller_key_listener):
1627 New method introduced by refactoring, from
1628 impl_deregister_keystroke_listener.
1629 (impl_deregister_keystroke_listener):
1630 Call spi_deregister_controller_key_listener.
1631 (spi_key_listener_clone):
1632 New method to copy a key listner without doing a 'ref' on the
1633 remote object instance; used to create a notifier list.
1634 (spi_key_listener_data_free):
1635 New method, frees data without unreffing the source.
1637 (spi_key_listener_clone_free): new method.
1638 (spi_key_listener_free):
1639 refactored to call spi_key_listener_data_free.
1641 2002-06-20 Bill Haneman <bill.haneman@sun.com>
1643 * registryd/registry.c: [fix for bug 86048]
1644 (notify_listeners_cb):
1645 Clear CORBA system exceptions which occur when notifying
1646 listeners, before returning to the source of the original event,
1647 since the event source doesn't care if the relayed notify failed.
1648 In other words, don't complain to the atk-bridge if the registry
1649 could not notify all its listeners, that's no fault of the
1650 application and thus should not appear to be an error from the
1651 application's perspective.
1653 * cspi/spi_main.c: [fix for bug 85980]
1655 Replaced use of bonobo_object_dup_ref with call to the wrapper
1656 method, csou_dup_ref (); this silences a compiler warning and
1657 provided more portability.
1659 Ping the registry before return, and restart if necessary.
1661 * cspi/bonobo/cspi-bonobo.c:
1663 New internal method.
1665 Fixed this method to return an object reference, as it should have
1668 * cspi/cspi-lowlevel.h:
1669 Added internal definition for cspi_ping() and fixed
1670 return type of cspi_dup_ref().
1673 2002-06-19 Bill Haneman <bill.haneman@sun.com>
1675 * atk-bridge/bridge.c: [fix for bug 85305]
1676 (spi_atk_bridge_register_application):
1677 New method where the initial application registry calls have been
1678 moved; it allows an application to re-register in response to
1679 certain error conditions (such as a registry restart, see below).
1681 Moved some initialization code to the method
1682 spi_atk_bridge_get_registry, below.
1683 (spi_atk_bridge_get_registry):
1684 New, private accessor function for the Accessibility_Registry
1685 instance. If the registry has not been started before, or has
1686 died (as detected by failure of a CORBA exception), it is
1687 restarted before return, and spi_atk_bridge_register_application
1688 is called again to register with the new bridge instance.
1689 (spi_atk_emit_eventv):
1690 Set registry_died on error; use spi_atk_bridge_get_registry () to
1691 access the registry.
1693 * registryd/registry.c:
1694 (impl_accessibility_registry_register_global_event_listener):
1695 Set listener's event_type_quark to etype.minor instead of
1696 etype.major (fix for bug 84856).
1698 * test/event-listener-test.c:
1699 (report_detail_event):
1700 Change the output string so that user/tester can tell that the
1701 'detail listener' was called instead of the 'generic listener'.
1703 2002-06-18 Bill Haneman <bill.haneman@sun.com>
1705 Fixes for bugs 84900, 84908, 84897, 84898.
1710 Revved version to 1.1.0
1711 (reserving the 1.0.X branch for gnome-2-0-0 branch, this
1712 version is going to HEAD which will be used for gnome-2-0-1 and later.)
1714 * idl/Accessibility_Registry.idl:
1715 (EventListener::notifyEvent):
1716 Removed 'oneway' directive after extensive consulation with
1717 ORBit2 team and others. This means also that unref() of the event
1718 source can and should be done synchronously after emission, rather
1719 than remotely in the client, after servicing the notify call on
1722 NOTE: This change speeds up listener performance considerably, but
1723 introduces new latency on the application side. We may want to
1724 add an event queue to the atk-bridge.
1726 * atk-bridge/bridge.c:
1727 (spi_atk_bridge_focus_tracker):
1728 Do a local unref() on the event source after emission.
1730 * registryd/registry.c:
1731 (desktop_remove_application):
1732 Do an unref() on the event source after emission.
1733 (desktop_add_application):
1734 Do an unref() on the event source after emission.
1735 (notify_listeners_cb):
1736 When relaying an event, don't automatically add the event source
1737 to the local object cache, just CORBA_dup it instead. Likewise,
1738 if this method reenters, release the ref rather than calling
1740 (impl_registry_notify_event):
1741 No longer call remote unref() on the event source after dispatch.
1743 * libspi/eventlistener.c:
1744 (impl_accessible_event_notify_event):
1745 Removed remote unref ()
1747 * cspi/bonobo/cspi-bonobo-listener.c:
1749 We now call cspi_object_new() instead of cspi_object_add() on
1750 receipt of an event; thus we only have an implicit object ref
1751 while the cspi_event method is being executed. If we need to keep
1752 a reference to the object, the listener must call ref() on the
1753 object. Thus also we don't need to call cspi_object_unref() after
1754 invoking the listener callbacks in this method.
1758 New internal API for creating a new cspi object, without adding it
1759 to the object cache.
1761 Now uses cspi_object_new() to create the cspi object instance.
1763 Now checks to see if the object is in the internal object cache,
1764 and adds it if necessary before incrementing its refcount (note
1765 that new objects are added with a refcount of 1).
1766 (report_leaked_ref):
1767 New method which gives some information on leaked object instances
1768 if leak detection is turned on.
1770 * test/event-listener-test.c:
1771 (timing_test_event):
1772 New method, used for testing event delivery timing for special
1773 events of type "object:test". It reports elapsed time and
1774 events/sec every 500 events.
1776 Added a new listener, 'test listener', to check timing of event
1777 receipt as noted above.
1779 Added some timing output here also, reports elapsed time every 100
1782 * test/stress-test.c:
1783 Emit events of type "object:test", for use with "event-listener-test".
1785 * test/test-simple.c:
1786 (global_listener_cb):
1787 Call Accessible_ref() on the event source before calling
1788 validate_accessible, since the validation process does pointer
1789 comparisons on the event source, meaning that the event source
1790 needs to be added to the local object cache first. Any use of
1791 such pointer comparisons between Accessible objects requires that
1792 the caller hold an explicit reference to those objects.
1793 We also must therefore call Accessible_unref() when leaving this method.
1795 2002-06-13 Bill Haneman <bill.haneman@sun.com>
1797 * registryd/deviceeventcontroller.c:
1798 (spi_controller_update_key_grabs):
1799 Fix for #84735, subsequent keygrab listeners not informed of
1800 registration failure.
1803 (spi_base_construct):
1804 Add an assertion on construct, to make sure the GObject passed in
1805 is really a GObject.
1807 Explicitly initialize object->gobj pointer to NULL;
1809 * cspi/bonobo/cspi-bonobo-listener.c:
1810 (cspi_object_add_ref):
1811 New method, can specify whether to dup-ref a bonobo object passed
1812 in if it's newly added to the object cache.
1814 Now calls cspi_object_add_ref with second param of "FALSE". This
1815 prevents us from doing a pointless dup-ref followed by
1816 release-unref for all those cases where the object is already in
1817 our object cache (fix for #85205).
1819 * atk-bridge/bridge.c:
1820 (spi_atk_bridge_idle_init):
1821 Removed this method, we don't need to initialize in an idle
1824 Changed to call spi_atk_register_event_listeners directly, not via an
1825 idle handler. (fix for #81139)
1826 (gnome_accessibility_module_shutdown):
1827 Removed conditional around deregistration of listeners, since we
1828 don't use the idle handler and thus have always registered when
1830 (spi_init_keystroke_from_atk_key_event):
1831 Changed references to Accessibility_KEY_PRESSED to
1832 Accessibility_KEY_PRESSED_EVENT, etc. (fix for #79865).
1834 2002-06-12 Bill Haneman <bill.haneman@sun.com>
1836 (TAGGED AND BRANCHED for gnome-2-0-0 after this commit)
1841 * test/stress-test.c:
1844 (may have been an incomplete commit yesterday?)
1846 2002-06-12 Bill Haneman <bill.haneman@sun.com>
1849 Added target for new stress-test.
1851 * test/stress-test.c:
1852 New test, sends 1000 focus notifies in quick succession.
1854 * test/key-listener-test.c:
1855 Now we report whether a keylistener registration
1856 request succeeded or failed.
1858 * test/event-listener-test.c:
1859 Uncommented some listeners which are now implemented.
1862 2002-06-06 Bill Haneman <bill.haneman@sun.com>
1864 * registryd/deviceeventcontroller.c:
1865 (spi_controller_update_key_grabs):
1866 Fix for #82509, lack of failure notification when
1867 ALL_WINDOWS keygrabs fail due to XGrabKey
1868 failure: we synchronize the server when
1869 registering a passive grab, to make sure we get the
1870 error message before the call returns.
1872 2002-06-03 Bill Haneman <bill.haneman@sun.com>
1874 * test/test-simple.c:
1876 Removed #ifdef KEY_IMPL_WORKS guards.
1877 (test_keylisteners):
1878 Removed #ifdef KEY_IMPL_WORKS guards.
1879 Fixed bug which was causing a hang waiting for a
1880 "press" event (which was already overwritten by a "release"
1881 event) from SPI_generateKeyboardEvent with synth-type of SPI_KEY_SYM.
1883 Added code to set globals 'key_press_received' and
1884 'key_release_received'.
1887 Added section "1.1 API Proposed Additions" which
1888 lists API additions desired for at-spi-1.1 (only one so far).
1889 Updated TODO list a little.
1891 2002-06-02 Bill Haneman <bill.haneman@sun.com>
1893 AT-SPI 1.0 API FINAL: at-spi 1.0 is now
1896 * configure.in: Revved to 1.0.0.
1898 * idl/Accessibility_Registry.idl:
1899 (registerKeystrokeListener):
1900 Added boolean return value.
1902 * registryd/registry.c:
1903 (notify_listeners_cb): Minor fix to debug output.
1905 * registryd/Accessibility_Registry.server.in.in:
1906 Revved version number in OAFIID to 1.0.
1908 * registryd/registryd.c:
1910 Use new OAFIID version.
1912 * cspi/bonobo/cspi-bonobo.c:
1914 Use new OAFIID version.
1920 * atk-bridge/bridge.c:
1922 Use new OAFIID version.
1924 * registryd/deviceeventcontroller.c:
1925 (impl_register_keystroke_listener):
1926 Added CORBA_boolean return value.
1927 (spi_controller_register_device_listener):
1928 Added gboolean return value.
1929 (spi_controller_register_global_keygrabs):
1930 Added gboolean return value.
1931 (spi_key_set_contains_key):
1932 Added implementation for many more control keys,
1933 for instance F1-F12, arrow keys, End, Home, Page_Up,
1935 [TODO: some still not implemented].
1937 * text/screen-review-test.c:
1938 (text_chunk_pad_string):
1939 New function: it provides mapping between coordinate
1940 positions of text chunks and character positions in the
1941 screen-review-line output string.
1942 (text_chunk_to_string):
1943 New function, calls text_chunk_pad_string with various
1944 pad/delimiter characters. Pushbuttons are delimited with
1945 square brackets, Frames with vertical 'pipe' lines, and
1946 other text with double quotes.
1947 (text_chunk_list_to_string):
1948 Calls new function text_chunk_to_string.
1949 (toplevel_composite):
1950 New function to composite layers CANVAS through
1951 POPUP in each toplevel (other layers are composited
1952 across toplevels, i.e. BACKGROUND and OVERLAY).
1953 (review_buffer_composite):
1954 Revise to use new methods.
1960 2002-05-31 Laszlo Peter <laca@sun.com>
1962 * configure.in: add the Xtst libdir to the runpath on Solaris,
1963 since it's not in the default library search path.
1965 2002-05-29 jacob berkman <jacob@ximian.com>
1967 * registryd/Makefile.am (EXTRA_DIST): dist the .in.in
1969 2002-05-29 Bill Haneman <bill.haneman@sun.com>
1971 * test/screen-review-test.c:
1972 (text_chunk_pad_string):
1973 Added method, which pads the string according to the
1974 text bounds of the chunk. It also takes a 3-character
1975 string as a param which indicates the characters to be
1976 used for start, padding, and end delimitation of the chunk.
1977 (text_chunk_to_string):
1978 Changed to use text_chunk_pad_string.
1980 * configure.in: Fixed bug in AC_OUTPUT that was
1981 causing path substitution in Accessibility_Registry.server
1984 2002-05-23 Bill Haneman <bill.haneman@sun.com>
1986 * text/screen-review-test.c:
1987 (guess_string_clip):
1988 New method which attempts a best-guess at clipping
1989 text from components (like Java labels) which don't
1990 actually implement AccessibleText. This inaccurate
1991 clip is based on the assumption that the label is
1992 justified left-and-right, and monospaced.
1993 (text_chunk_get_clipped_string):
1994 We now call guess_string_clip() for text-containing
1995 components that don't implement AccessibleText.
1997 * test/screen-review-test.c:
1998 (review_buffer_get_text_chunk):
1999 We now pull "name" from labels if they do not implement
2000 AccessibleText (i.e. for Java labels).
2001 (get_screen_review_line_at):
2002 Added #ifdef guards CHUNK_LIST_DEBUG for diagnostics.
2005 Replaceded AC_OUTPUT target
2006 registryd/Accessibility_Registry.server with
2007 registryd/Accessibility_Registry.server.in.
2009 * registryd/Accessibility_Registry.server.in:
2010 Removed (this is now a Makefile target).
2012 * registryd/Accessibility_Registry.server.in.in:
2013 Added (source for target above). We now use $(libexecdir) as
2014 prefix for the executable at-spi-registryd.
2016 * registry/Makefile.am:
2017 Now install at-spi-registryd into $(libexecdir), and build .server
2018 file with path (see above).
2020 2002-05-22 Bill Haneman <bill.haneman@sun.com>
2022 * test/screen-review-test.c:
2023 (text_chunk_get_clipped_string):
2024 We now check to see if words fall within clip bounds
2025 before resorting to character-by-character clip bounds testing.
2027 * TODO: Added a section for "2.2 Proposed API Additions".
2029 2002-05-21 Bill Haneman <bill.haneman@sun.com>
2031 * test/screen-review-test.c:
2033 Added a screen review benchmarking and test program to test
2036 * cspi/spi_accessible.c:
2038 Made some of the debug strings passed to cspi_check_ev a
2039 little more specific.
2041 2002-05-21 Padraig O'Briain <padraig.obriain@sun.com>
2043 * test/screen-review-test.c: Fix crashes in debug statements
2045 2002-05-20 Bill Haneman <bill.haneman@sun.com>
2047 * test/screen-review-test.c: Added this file.
2049 2002-05-13 Marc Mulcahy <marc.mulcahy@sun.com>
2051 * atk-bridge/bridge.c: changed "object:state-change" to
2052 "object:state-changed" to match docs.
2054 2002-05-13 Marc Mulcahy <marc.mulcahy@sun.com>
2056 * atk-bridge/bridge.c: Hooked up state-change event details.
2058 2002-05-11 Bill Haneman <bill.haneman@sun.com>
2060 * registryd/registry.c:
2061 Fixed quarking bug in event string parsing; now events with
2062 detail parameters get matched correctly to listeners.
2065 * util/idl/Magnifier.idl: remove.
2067 * util/*.[ch]: Remove.
2068 Magnification utilities and IDL are now in module gnome-mag.
2070 2002-05-10 Bill Haneman <bill.haneman@sun.com>
2072 * registryd/deviceeventcontroller.c:
2073 Fixed bug in grab key conversion which was causing keycode grabs
2074 to be converted to AnyKey grabs.
2077 updated NEWS file to reflect recent spin-off of gnome-mag.
2079 2002-05-09 Marc Mulcahy <marc.mulcahy@sun.com>
2081 * cspi/spi_accessible.c: Added exception checks. Fixed completely
2082 busted AccessibleStateSet_compare. Removed redundant casts.
2084 * cspi/spi-action.c: Removed redundant casts.
2086 * cspi/spi_application.c: Fixed typo in AccessibleApplication_getVersion.
2088 * cspi/spi_component.c: Fixed typos and casting error.
2090 * cspi/spi_editabletext.c: Removed redundant casts.
2092 * cspi/spi_hyperlink.c: Fixed casting and exception checking.
2094 * cspi/spi_hypertext.c: Eliminated redundant casts.
2096 * cspi/spi_image.c: Eliminated redundant casts.
2098 * cspi/spi_registry.c: Eliminated redundant casts.
2099 SPI_deregisterGlobalEventListenerAll () removed retval variable.
2100 * cspi/spi_selection.c: Removed redundant casts.
2101 * cspi/spi_text.c: Eliminated redundant casts. Fixed exception
2102 handling. Screen geometry and text offsets were being returned as 0
2103 on error which is technically valid-- changed these to return -1.
2104 Added marshaller for text boundary types to fix bug with boundary
2105 types being passed incorrectly to atk.
2107 2002-05-09 Bill Haneman <bill.haneman@sun.com>
2110 * cspi/spi_registry.c:
2111 Fixed nasty bug in SPI_registerAccessibleKeystrokeListener
2112 which was uncovered by the recent key changes.
2114 2002-05-09 Bill Haneman <bill.haneman@sun.com>
2116 * test/event-listener-test.c:
2118 Added new test, "event-listener-test";
2119 this code does two things; it benchmarks traversal time
2120 for the accessible hierarchy for the first running accessible
2121 app, and it connects listeners for all supported event types.
2122 It is thus useful as an example event listener and for
2123 diagnostics/debugging of event generation.
2125 2002-05-08 Bill Haneman <bill.haneman@sun.com>
2128 Removed unnecessary dependency on libutil.
2131 Revved micro version: 0.13.1
2133 2002-05-08 Bill Haneman <bill.haneman@sun.com>
2136 Removed util/Makefile from targets.
2139 Removed util subdir from SUBDIRS (temporarily,
2140 pending removal of magnifier-only code
2144 #ifdef-ed out magnifier dependencies, since
2145 magnifier IDL, headers, and binary now live in
2146 module gnome-mag and we don't want at-spi to depend
2147 on gnome-mag. A magnifier demo which can run alongside
2148 simple-at is forthcoming in the gnome-mag module.
2150 NOTE: Split magnifier binary, IDL, and magnification
2151 activation code from at-spi into module gnome-mag.
2153 2002-05-03 Marc Mulcahy <marc.mulcahy@sun.com>
2155 * cspi/bonobo/cspi-bonobo.c cspi/bonobo/cspi-bonobo-listener.c
2156 cspi/bonobo/cspi-bonobo-listener.h: Added copyright notice.
2158 2002-05-03 Bill Haneman <bill.haneman@sun.com>
2161 Revved to version 0.13.0
2163 * idl/Accessibility_Registry.idl:
2164 Changed definition of KeySet from sequence of longs to sequence of
2165 KeyDefinitions, and added KeyDefinition struct.
2166 Required for fix to bug 80616.
2168 * cspi/spi_registry.c: SPI_registerAccessibleKeystrokeListener():
2169 Changed AccessibleKeySet to Accessibility_KeySet marshalling code
2170 to use new definition (see above).
2172 * registryd/deviceeventcontroller.c: handle_keygrab(),
2173 spi_keyset_contains_key():
2174 Changed to make use of new struct; this allows matching based on
2175 string key-name, for instance "Tab". This also allows matching of
2176 composed characters, non-alphanumeric characters in a way that
2177 doesn't involve dependencies on X keysym codes directly, etc.
2179 * test/key-listener-test.c:
2180 Added test for Alt-Tab key using "string" specification of keyset,
2181 and modified one of the tests to use a keycode-based keyset.
2182 Thus this test both tests and demonstrates the creation and use of
2183 keysets of three forms: specified via keycode array,
2184 keysym array, and string array. (The string case only contains a
2185 single string, i.e. a string array of length 1).
2188 Turned on PRINT_TREE option by default. Also fixed a
2189 string-freeing bug in the PRINT_TREE code.
2190 Added a listener to window:minimize events.
2192 2002-05-08 Padraig O'Briain <padraig.obriain@sun.com>
2194 * atk-bridge/bridge.c:
2195 (spi_atk_register_event_listeners) Call atk_add_global_event_listener()
2196 for window:activate and window:deactiveate
2197 (atk_bridge_property_event_listener atk_bridge_signal_listener
2198 atk_bridge_window_event_listener) Tidy debug code
2200 2002-05-02 Marc Mulcahy <marc.mulcahy@sun.com>
2202 * libspi/accessible.c (impl_accessibility_accessible_get_role_name):
2203 Fixed handling for NULL return value from ATK.
2205 * libspi/action.c libspi/component.c libspi/editabletext.
2206 libspi/hyperlink.c libspi/hypertext.c image.c libspi/selection.c
2207 libspi/stateset.c libspi/table.c libspi/text.c libspi/value.c:
2208 Removed redundant casts.
2210 * libspi/table.c (impl_getSelectedRows, impl_getSelectedColumns):
2211 Fixed off by one bug.
2213 *libspi/text.c: removed impl_getRowColAtOffset (unimplemented
2214 function not present in idl)
2216 2002-05-02 jacob berkman <jacob@ximian.com>
2218 * atk-bridge/Makefile.am: make atk-bridge a real module
2220 2002-04-26 Radek Doulik <rodo@ximian.com>
2222 * libspi/stateset.c (spi_init_state_type_tables): fix size of
2223 atk_state_types table
2225 2002-04-22 jacob berkman <jacob@ximian.com>
2228 * libspi/Makefile.am: add deps on the built files to help
2229 automake, and don't version the ORBit typelib
2231 2002-04-19 Padraig O'Briain <padraig.obriain@sun.com>
2233 * cspi/cspi-lowlevel.h cspi/spi-impl.h cspi/spi-listener.h
2234 cspi/spi-private.h cspi/spi-roletypes.h cspi/spi-statetype.h
2235 cspi/spi.h cspi/spi_accessible.c cspi/spi_action.c
2236 cspi/spi_application.c cspi/spi_component.c cspi/spi_editabletext.c
2237 cspi/spi_hyperlink.c cspi/spi_hypertext.c cspi/spi_image.c
2238 cspi/spimain.c cspi/spi_selection.c cspi/spi_streamablecontent.c
2239 cspi/spi_table.c cspi/spi_text.c cspi/spi_value.c
2240 libspi/accessible.h libspi/accessible.h libspi/base.h
2241 libspi/component.h libspi/editabletext.h libspi/hyperlink.h
2242 libspi/hypertext.h libspi/image.h libspi/keymasks.h libspi/libspi.h
2243 libspi/relation.h libspi/remoteobject.h libspi/selection.h
2244 libspi/spi-private.h libspi/statetset.h libspi/table.h
2245 libspi/text.h libspi/util.h libspi/value.h util/mag_client.c
2246 util/mag_client.h util/mag_control.c util/mag_image.c
2247 util/mag_image.h util/magnifier.c util/magnifier.h:
2248 Add missing file headers; standardize existing ones
2250 2002-04-18 Marc Mulcahy <marc.mulcahy@sun.com>
2252 * atk-bridge/bridge.c: Added window event support.
2254 2002-04-18 Michael Meeks <michael@ximian.com>
2256 * libspi/relation.c (impl_getNTargets): impl.
2257 (impl_getTarget): impl.
2259 * libspi/Makefile.am: fix stateset install.
2261 2002-04-17 Bill Haneman <bill.haneman@sun.com>
2264 Started putting useful info in this file.
2266 2002-04-17 Marc Mulcahy <marc.mulcahy@sun.com>
2268 * atk-bridge/bridge.c:
2269 Propagate state-changed notifications to ATs
2271 * cspi/spi_registry.c: update docs to reflect actual behavior of
2272 state-change events.
2274 2002-04-17 Bill Haneman <bill.haneman@sun.com>
2277 Incremented version to 0.12.1
2279 * util/mag_client.h:
2280 Add missing declaration for magnifier_exit,
2281 used by mag_control.c - Forte compiler didn't like
2282 the implicit redeclaration of the function :-(
2285 2002-04-16 Bill Haneman <bill.haneman@sun.com>
2288 Revved version to 0.12 due to API change (see below).
2290 * cspi/spi-roletypes.h:
2291 removed (obsolete) SPI_ROLE_FOCUS_TRAVERSABLE
2292 definition from the inline docs, and added docs
2293 for SPI_ROLE_LAST_DEFINED.
2296 * cspi/spi_streamablecontent.c:
2297 Added missing seek_type parameter to
2298 (so far unused) method,
2299 AccessibleStreamableContent_seek().
2300 [ RT approval JodyG. ]
2303 Fixed docs for SPI_createAccessibleKeystrokeListener.
2305 * cspi/spi_registry.c:
2306 Fixed docs for SPI_KEYSET_ALL_KEYS.
2308 * docs/reference/cspi/at-spi-cspi-sections.txt:
2309 Added a number of missing APIs to SECTIONS.
2311 2002-04-16 Bill Haneman <bill.haneman@sun.com>
2313 * registryd/Makefile.am:
2315 * cspi/bonobo/Makefile.am:
2316 Add $(X_LIBS) to makefiles.
2318 2002-04-15 Bill Haneman <bill.haneman@sun.com>
2321 Revved version to 0.11.
2323 * libspi/component.c:
2324 Added implementation for grabFocus.
2326 * idl/Accessibility_Component.idl
2327 (Accessibility_Component_grabFocus):
2328 Made this method return boolean to indicate success or failure, to
2329 be consistent with cspi and the corresponding ATK method.
2331 * idl/Accessibility_Selection.idl
2332 (Accessibility_Selection_selectAll) :
2333 Made these methods return boolean to indicate success or
2334 failure, to be consistent with cspi and the corresponding ATK methods.
2336 * idl/Accessibility_EditableText.idl
2337 (Accessibility_EditableText_setTextContents,
2338 Accessibility_EditableText_insertText,
2339 Accessibility_EditableText_cutText,
2340 Accessibility_EditableText_deleteText,
2341 Accessibility_EditableText_pasteText):
2342 Made these methods return boolean to indicate
2345 * cspi/spi_editabletext.c:
2346 Made these methods return booleans.
2348 * libspi/selection.c:
2349 * libspi/component.c:
2350 * libspi/editabletext.c:
2351 Connected the boolean returns from ATK
2352 to the server-side code referenced above.
2354 2002-04-14 Bill Haneman <bill.haneman@sun.com>
2356 * idl/Accessibility_Table.idl: Added missing methods,
2357 Accessibility_Table_addRowSelection,
2358 Accessibility_Table_addColumnSelection,
2359 Accessibility_Table_removeRowSelection,
2360 Accessibility_Table_removeColumnSelection.
2363 Added C wrappers for above IDL:
2364 AccessibleTable_addRowSelection,
2365 AccessibleTable_addColumnSelection,
2366 AccessibleTable_removeRowSelection,
2367 AccessibleTable_removeColumnSelection.
2370 Added server-side implementation code for IDL above, connecting
2371 to pre-existing ATK api.
2373 2002-04-13 Marc Mulcahy <marc.mulcahy@sun.com>
2375 * idl/Accessibility_State.idl: Made StateSet inherit from BonoboUnknown.
2377 * libspi/accessible.c: Added implementation fo
2378 Accessibility_Accessible_get_state.
2380 * libspi/libspi.h: Added stateset.h to the list of includes.
2382 * libspi/stateset.c: Fixed broken implementation.
2384 2002-04-13 Bill Haneman <bill.haneman@sun.com>
2387 Added implementation code for Accessibility_Magnifier_exit ().
2389 * util/mag_control.c:
2390 Added test code for above method; you can
2391 now kill an existing magnifier via
2392 ./mag_control q, from the util directory.
2394 * test/key-listener-test.c:
2396 Added a new test, for our key listener API.
2398 2002-04-11 Bill Haneman <bill.haneman@sun.com>
2400 * test/app.c, test/keysynth-demo.c:
2402 Replace use of snprintf with g_snprintf.
2403 (fix for bugzilla 78249)
2405 2002-03-27 Michael Meeks <michael@ximian.com>
2409 * util/Makefile.am (INCLUDES): fix.
2410 (DONT_DIST_SOURCE): don't distribute the
2413 * libspi/Makefile.am (dist-hook): ditto.
2415 2002-03-27 Padraig O'Briain <padraig.obriain@sun.com>
2417 * libspi/hypertext.c:
2418 Fix warnings when yelp is used with atk-bridge
2420 2002-03-21 Michael Meeks <michael@ximian.com>
2422 * libspi/application.c (spi_application_new):
2423 use spi_accessible_construct so we use the AtkObject
2426 2002-03-19 Michael Meeks <michael@ximian.com>
2428 * registryd/registry.c (desktop_remove_application),
2429 (desktop_add_application): clean coding style.
2431 * registryd/desktop.c (spi_desktop_remove_application),
2432 (spi_desktop_add_application): kill re-enterency hazards.
2433 (spi_desktop_dispose): remove bogus redundant cast
2434 obscuring bug; fix bug too.
2435 (spi_desktop_init): make the desktop object immortal.
2437 2002-03-16 Bill Haneman <bill.haneman@sun.com>
2440 Added a #define-guarded tree-traversal step
2441 when enumerating the apps (diagnostic tool).
2443 2002-03-15 Bill Haneman <bill.haneman@sun.com>
2445 * idl/Accessibility_Role.idl:
2446 Added ROLE_DRAWING_AREA which seemed to be missing from the
2449 2002-03-14 Marc Mulcahy <marc.mulcahy@sun.com>
2451 * cspi/spi-roletypes.h cspi/spi_accessible.c
2452 idl/Accessibility_Role.idl libspi/accessible.c: synched up role
2455 * registryd/desktop.c registryd/desktop.h registryd/registry.c:
2456 Added signals to SpiDesktop and callbacks in SpiRegistry to notify
2457 AT when applications are added and removed from the desktop. This
2458 reverts the previous broken implementation using the backing
2459 AtkObject for the SpiDesktop.
2461 2002-03-14 Marc Mulcahy <marc.mulcahy@sun.com>
2463 * registryd/desktop.c: emit the "children-changed::add" and
2464 "children-changed::remove" signals on the backing ATK object for
2465 the desktop so AT can tell when applications are started and shut
2468 2002-03-14 Marc Mulcahy <marc.mulcahy@sun.com>
2470 * cspi/spi_accessible.c: Made role names freeable with SPI_freeString ()
2472 2002-03-14 Marc Mulcahy <marc.mulcahy@sun.com>
2474 * libspi/stateset.c: implemented Accessibility_StateSet_compare ()
2476 * cspi/spi_accessible.c: Implemented c bindings for stateset support
2478 * cspi/state-types.h: synched with IDL and ATK
2480 2002-03-13 Bill Haneman <bill.haneman@sun.com>
2482 * libspi/accessible.c
2483 (impl_accessibility_accessible_get_child_at_index):
2484 Change return value for g_return_if_fail ()
2485 to CORBA_OBJECT_NIL instead of "0" (!)
2487 * registryd/Makefile.am:
2488 * registryd/Accessibility_Register.server.in:
2489 Changed name of executable, "registryd",
2490 to something more informative:
2493 2002-03-13 Michael Meeks <michael@ximian.com>
2495 * atk-bridge/bridge.c (atk_bridge_init): don't register
2496 if we're in a bonobo-component, rather than a bonobo app.
2498 2002-03-13 Michael Meeks <michael@ximian.com>
2500 * atk-bridge/bridge.c (gtk_module_init): split
2501 out body to (atk_bridge_init): here, since otherwise
2502 we get symbol conflicts and oddness when invoked
2503 from (gnome_accessibility_module_init): here (upd.)
2505 2002-03-11 Bill Haneman <bill.haneman@sun.com>
2508 New file. Explicitly allow "build sheriff" putbacks provided
2509 they are tested on Solaris.
2511 * docs/reference/cspi/Makefile.am:
2512 Added '-' to the "cp" command for index.sgml.
2513 ("patch by thomasvs, soon coming to a GUADEC near you")
2516 Incremented version number (0.9.0) for new release.
2517 Changed macro that checks for popt, to better detect
2518 obsolete versions of popt.
2521 Added X_LIBS to AC_SUBST, for applications
2522 that call Xlib API directly.
2525 2002-03-07 Bill Haneman <bill.haneman@sun.com>
2528 Include gdk_pixbuf_x11-2.0 in UTILS_LIBS.
2531 Fix regression caused by hard-coding major
2532 version of gdk_pixbuf_x11; now use $(UTILS_LIBS)
2535 * test/test-simple.c (test_editable_text),
2536 (test_test): revert previous change (error was
2537 a regression in gail which is now fixed).
2539 2002-03-04 Michael Meeks <michael@ximian.com>
2541 * test/test-simple.c (test_editable_text),
2542 (test_text): pass G_MAXINT instead of '-1' for
2543 whole string - is this a good thing !?
2545 * cspi/spi_accessible.c
2546 (Accessible_getRelationSet): fix crasher bug
2547 overwriting the end of the array.
2549 * test/test-simple.c (validate_accessible): free,
2550 not g_free returned relation set.
2552 2002-02-26 Marc Mulcahy <marc.mulcahy@sun.com>
2554 * libspi/stateset.c libspi/stateset.h libspi/Makefile.am:
2555 implemented stateset support
2557 * idl/Accessibility_State.idl: Made necessary changes to
2558 the IDL to support state sets.
2560 2002-02-12 Bill Haneman <bill.haneman@sun.com>
2562 * registryd/deviceeventcontroller.c:
2563 Added implementation for generateMouseEvent.
2565 * cspi/spi_registry.c:
2566 Connected new implementation for generateMouseEvent
2569 2002-02-12 Bill Haneman <bill.haneman@sun.com>
2572 Incremented revision (but no change in public API
2573 outside of 'utils', which are not installed public yet.)
2575 * libspi/component.c:
2576 Changed to use atk_component API for layers and
2577 mdi_zorder, instead of deprecated atk_object API.
2579 Magnification Utility Enhancements:
2582 Added implementation of createZoomRegion, clearAllZoomRegions,
2583 resizeZoomRegion. Added new commandline argument
2584 "--no-initial-region". Note that clearAllZoomRegions doesn't
2585 unmap the old '0' region as it should (yet), and the other
2586 methods only work when creating/resizing a single region,
2587 which is "region 0".
2588 (Code for multiple region support will be added later.)
2591 Now we raise the magnifier window each time it's refreshed;
2592 this will help keep it on top.
2594 * util/mag_client.h:
2595 Added simple wrappers for above, used by mag_control.
2596 For general use, it's recommended to use the bonobo magnifier
2597 control API directly instead of using these wrappers.
2600 Moved ZoomRegionData from magnifier.c to this file.
2602 * util/mag_control.c:
2603 Added some code to exercise new IDL implementations.
2605 2002-02-06 Marc Mulcahy <marc.mulcahy@sun.com>
2607 * libspi/text.c: Provide implementation for getAttributes.
2609 2002-02-04 Bill Haneman <bill.haneman@sun.com>
2612 Incremented revision.
2614 * test/test-simple.c:
2615 Replaced use of deprecated g_main_iteration with
2616 g_main_context_iteration.
2618 2002-01-28 Padraig O'Briain <padraig.obriain@sun.com>
2621 Incremented revision for desktop alpha 2.
2623 2002-01-28 Mark McLoughlin <mark@skynet.ie>
2625 * libspi/remoteobject.[ch]: make RemoteObject and interface rather
2628 * test/simple-at.c: include netinet/in.h.
2630 2002-01-24 Mark McLoughlin <mark@skynet.ie>
2632 * cspi/spi_accessible.c: (Accessible_getRelationSet):
2633 use NULL, not CORBA_OBJECT_NIL.
2635 * libspi/accessible.c:
2636 (impl_accessibility_accessible_get_relation_set):
2637 allocate the sequence correctly.
2639 * libspi/remoteobject.h: kill spi_remote_object_new.
2641 * test/test-simple.c: (validate_accessible): add code
2642 to test relation sets, now all we need is to figure
2643 out how to excercise this code path :/
2645 2002-01-18 Michael Meeks <michael@ximian.com>
2647 * test/test-simple.c
2648 (key_listener_cb): consume the key.
2649 (test_keylisteners): update.
2650 (main): wait for any pending unrefs on events.
2652 * registryd/deviceeventcontroller.c
2653 (spi_controller_update_key_grabs): only re-issue the
2654 grab on a key release.
2655 (spi_device_event_controller_forward_key_event):
2656 refresh the keygrabs before we notify the listeners,
2657 to reduce the X ungrab / re-grab race.
2658 (spi_controller_register_with_devices): remove
2659 XSelectInput - we do that with the gdk_window_ call.
2660 (_spi_controller_device_error_handler): return a value.
2661 s/GDK_DISPLAY/spi_get_display/
2663 2002-01-17 Michael Meeks <michael@ximian.com>
2665 * registryd/deviceeventcontroller.c
2666 (_deregister_keygrab): don't blow out the later
2669 * test/test-simple.c (test_keylisteners): do a
2670 more intelligent validation.
2672 2002-01-14 Michael Meeks <michael@ximian.com>
2674 * atk-bridge/bridge.c
2675 (gnome_accessibility_module_init),
2676 (gnome_accessibility_module_shutdown): impl.
2677 (gtk_module_init): protect vs. double inits.
2678 (add_signal_listener): impl.
2679 (spi_atk_bridge_state_event_listener): kill
2680 (deregister_application): split out of
2681 (spi_atk_bridge_exit_func): here.
2683 2002-01-18 Bill Haneman <bill.haneman@sun.com>
2686 Added caret tracking when using magnifier, and
2687 now use text bounds for focus tracking of text elements, rather than
2688 the component bounds - this is helpful for short text fields in long
2689 table cells, at high magnification.
2691 2002-01-16 Bill Haneman <bill.haneman@sun.com>
2693 * registryd/deviceeventcontroller.c:
2694 Regression fix for keylistener de-registration; global keygrabs
2695 were not being released when deregisterKeystrokeListener was
2696 called in cspi, since
2697 Accessibility_DeviceEventController_deregisterKeystrokeListener
2698 was called with a zero-length keyset. That is because the cspi
2699 method, SPI_deregisterKeystrokeListener, does not take a keyset
2700 parameter but instead should remove all the key grabs held be a
2702 The code in impl_deregister_keystroke_listener was changed to copy
2703 the keylist from the listener instance previously registered with
2704 the DeviceEventController before releasing the grabs.
2706 * registryd/registry.c:
2707 * registryd/deviceeventcontroller.c:
2708 * libspi/spi-private.h:
2710 Changed spelling of "re-enterant" to "re-entrant" globally.
2712 2002-01-16 Bill Haneman <bill.haneman@sun.com>
2714 * test/test-simple.c:
2715 Changed key listeners test - the test was slightly mis-using the
2716 (admittedly poorly documented) SPI_generateKeyboardEvent API.
2717 It now uses '=' as the key event listened to and generated,
2718 relying on a keysym match rather than assuming that keycode 33
2719 is always equal to keysym '!'.
2721 2002-01-15 Bill Haneman <bill.haneman@sun.com>
2724 Changed simple-at to use a specific keyset, rather than
2725 SPI_KEYSET_ALL_KEYS - this helps minimize clashes with the window
2726 manager, desktop, etc.
2728 2002-01-11 Bill Haneman <bill.haneman@sun.com>
2730 * registryd/deviceeventcontroller.c:
2731 Replaced standard X error handler with a special handler that
2732 is non-fatal for failed keygrabs. This works around
2733 problems with keygrab clashes sometimes observed on
2735 Re-instated SPI_DEVICE_TYPE_MOUSE in enum (didn't reinstate
2736 mouse handling code as yet).
2738 2002-01-11 Bill Haneman <bill.haneman@sun.com>
2741 Incremented revision for desktop alpha release.
2744 Fixed a couple of the more glaring errors (still not
2747 2002-01-11 Michael Meeks <michael@ximian.com>
2749 * registryd/deviceeventcontroller.c
2750 (spi_device_event_controller_forward_key_event): kill
2751 XUngrabKey / XKeyGrab race.
2752 (spi_controller_grab_keyboard): rename to
2753 (spi_controller_update_key_grabs): this, and deal
2754 with incremental adding / removing grabs more
2756 (_register_keygrab): ensure we're not pending a remove.
2757 (spi_grab_mask_free): impl.
2758 (spi_controller_register_global_keygrabs): split out
2760 (handle_keygrab): impl.
2761 (_deregister_keygrab): impl.
2762 (spi_controller_deregister_global_keygrabs): impl.
2763 (spi_controller_update_key_grabs): re-issue the grab if
2764 we just recieved a notification.
2766 * test/test-simple.c (key_listener_cb): remove debug.
2768 * registryd/deviceeventcontroller.c
2769 (spi_controller_register_device_listener): after
2770 registering a global keygrab, actualy register it !
2771 don't wait for a timeout; doh !
2773 * registryd/deviceeventcontroller.[ch]: s/DeviceEvent/DE/
2774 to make it more readable / manipulable.
2775 s/grabmask/grab_mask/ s/refcount/ref_count/
2776 s/keyval/key_val/ s/modmask/mod_mask
2778 2002-01-08 Michael Meeks <michael@ximian.com>
2780 * registryd/deviceeventcontroller.c
2781 (spi_controller_register_with_devices): use gdk calls to
2783 (global_filter_fn): implement the filter.
2784 (spi_device_event_controller_check_key_event): rename to
2785 (spi_device_event_controller_forward_key_event): this & upd.
2786 (spi_get_display): replace with GDK_DISPLAY.
2788 * registryd/deviceeventcontroller.c
2789 (spi_controller_deregister_device_listener): unroll into
2790 (impl_deregister_keystroke_listener): here to simplify.
2791 (spi_controller_register_global_keygrabs): split cut and
2792 paste (!) out into (_register_keygrab): here, shorter & sweeter.
2793 (spi_controller_deregister_device_listener): remove.
2794 (impl_register_mouse_listener): remove, no mouse listener
2795 support in at-spi-1.0
2797 * registryd/registry.c
2798 (_device_event_controller_hook): kill.
2799 (spi_registry_init): upd.
2801 * registryd/deviceeventcontroller.c
2802 (spi_device_event_controller_class_init): upd.
2803 (spi_check_key_event): merge into.
2804 (spi_device_event_controller_check_key_event):
2805 here and kill strange static ev init, don't leak
2806 the x_event - nor dynamicaly allocate it.
2808 * registryd/registry-main.c (main): re-direct
2809 timeout to remove strange vtable mess.
2811 * registryd/deviceeventcontroller.c
2812 (remove_listener_cb): impl.
2813 (spi_controller_deregister_device_listener):
2814 fix re-enterancy hazard.
2816 2002-01-07 Michael Meeks <michael@ximian.com>
2818 * registryd/deviceeventcontroller.c
2819 (spi_device_event_controller_new): upd.
2820 (impl_notify_listeners_sync): upd. debug.
2821 (spi_notify_keylisteners): fix re-enterancy hazards,
2822 prettify, remove O(n*n) iteration.
2823 (spi_controller_grab_keyboard): fix iteration.
2824 (spi_check_key_event): re-format to suit coding style.
2825 Clean all the warnings - we're warning free.
2827 * registryd/deviceeventcontroller.h:
2828 * registryd/registry.h: make mutualy referential with
2829 typesafe forward references instead of (!) void pointer
2832 2002-01-11 Michael Meeks <michael@ximian.com>
2834 * cspi/spi_accessible.c (role_names): add a role name
2835 to sync this array with the enum; and make the regression
2838 2002-01-10 Michael Meeks <michael@ximian.com>
2840 * cspi/spi_registry.c (SPI_generateKeyboardEvent):
2841 allow expansion of enumeration & kill warning.
2843 * test/test-simple.c (key_listener_cb): impl.
2844 (test_keylisteners): impl.
2846 * cspi/spi-listener.h: make listener signatures const
2847 on the provided (const) events.
2849 * test/keysynth-demo.c: upd. to const events.
2851 * test/simple-at.c: ditto.
2853 2002-01-11 Bill Haneman <bill.haneman@sun.com>
2856 Rev the version to 0.5 (the previous tarball was named 0.4,
2857 even though the micro number was 3), so we need to rev upwards
2858 again for beta2/"desktop-alpha"
2861 Checked in a demo script, which requires editing before use!
2862 Proceed with caution.
2865 Fixed typo in header which was redefining SPI_ACTION_CLASS.
2867 * cspi/spi_accessible.c:
2868 Add a couple of missing enum initializations, and fix some enum
2871 * cspi/spi_registry.c:
2872 Add comment describing keystring parameter to SPI_generateKeyboardEvent.
2874 * docs/reference/cspi/at-spi-cspi-sections.txt:
2875 Remove/fix a couple of broken document references.
2878 Minor tweaks to the demo. We now (sigh) use Alt-SHIFTLOCK as well
2879 as Alt-Control to listen for commands, since on some systems
2880 Control-Alt may already be grabbed.
2882 2002-01-10 Bill Haneman <bill.haneman@sun.com>
2885 Update version number to 0.4 for Beta2.
2887 * libspi/accessible.c, libspi/accessible.h:
2888 Expose spi_accessible_construct, to enable libgail-gnome
2889 construction from spi_accessible subtype.
2891 * utils/magnifier.c:
2892 Workaround for bug in some non-gnome-compliant window managers
2893 which made magnifier resize improperly.
2895 2002-01-09 Bill Haneman <bill.haneman@sun.com>
2897 * libspi/accessible.c: (spi_accessible_new) :
2898 Move the test for SPI_IS_REMOTE_OBJECT to
2899 spi_accessible_new_return, fixing a bug and compile time warning.
2901 2002-01-08 Michael Meeks <michael@ximian.com>
2903 * registryd/registry.c (parse_event_type): remove strndup.
2905 * libspi/Makefile.am (libspi_la_SOURCES): remove
2906 sources already included in the headers section.
2908 * libspi/util.c: add.
2910 * libspi/spi-private.h: add.
2912 * registryd/registry.c: update to moved list iterators.
2914 2002-01-05 Michael Meeks <michael@ximian.com>
2916 * test/simple-at.c (main): upd. auto-module set to atk-bridge
2918 * test/test-simple.c (main): ditto.
2920 2002-01-04 Michael Meeks <michael@ximian.com>
2922 * libspi/accessible.c (spi_accessible_new): remove 2nd,
2923 redundant construct.
2925 * registryd/registry.c
2926 (get_listener_list): impl.
2927 (impl_accessibility_registry_register_global_event_listener):
2928 re-impl. to simplify using ~, remove dodgy const cast off.
2929 (parse_event_type): constify.
2930 (impl_accessibility_registry_deregister_global_event_listener_all):
2931 re-write, more efficiency and simplicity, kill re-enterancy
2933 (compare_listener_corbaref, compare_corba_objects),
2934 (compare_listener_quarks): define out.
2935 (impl_accessibility_registry_deregister_global_event_listener):
2936 re-write for effiency, and nail re-enterancy hazard.
2937 (impl_accessibility_registry_get_desktop_list): impl.
2938 (re_enterant_list_delete_link): impl.
2939 (re_enterant_list_foreach): impl.
2940 (remove_listener_cb): impl.
2941 (_registry_notify_listeners): kill.
2942 (notify_listeners_cb): impl.
2944 * cspi/spi_registry.c (SPI_freeDesktopList): impl.
2945 (SPI_getDesktopList): impl.
2947 * test/test-simple.c (test_desktop): test the methods.
2949 2002-01-03 Michael Meeks <michael@ximian.com>
2951 * cspi/spi_event.c (SPI_createAccessibleKeySet): dup the
2952 keystrings since we free them
2953 (SPI_freeAccessibleKeySet): in here.
2955 * libspi/accessible.c (spi_accessible_new): kill warning,
2956 wonder what is going on with the constructor here.
2958 2002-03-01 Bill Haneman <bill.haneman@sun.com>
2960 * libspi/accessible.c (spi_accessible_new ()) :
2961 Added check to see if AtkObject is an SpiRemoteObject before
2962 creating an SpiAccessible.
2964 2002-05-01 Bill Haneman <bill.haneman@sun.com>
2966 * registryd/deviceeventcontroller.c (spi_controller_grab_keyboard):
2967 Enable keygrabs using the Control modifier, now that they are
2968 working properly (they were previously disabled).
2971 Change the command keygrab for this demo to "Control+Alt", so as
2972 to conflict with fewer other key commands on the system; this
2973 means that the quit command for "simple-at" is now "Ctrl-Alt-q".
2975 Removed a pointlessly-chatty keylistener for unshifted keys
2976 (shifted keys are still reported).
2978 2002-02-01 Bill Haneman <bill.haneman@sun.com>
2980 * libspi/remoteobject.h:
2981 * libspi/remoteobject.c:
2982 Added definitions for special AtkObject subtype, required for
2983 support of remote components (specifically, used by BonoboControl
2984 accessibility implementation).
2986 2002-01-02 Marc Mulcahy <marc.mulcahy@sun.com>
2988 * cspi/spi.h: synched relation types with ATK
2990 * cspi/spi_accessible.c: Added implementations of
2991 AcccessibleRelation_* methods
2993 * idl/Accessibility_Relation.idl: added getRelationTypeName
2994 method. Synched known relation types with ATK. Allowed for
2995 relation type extension with the RELATION_EXTENDED type.
2997 * libspi/relation.c: Provided implementations for
2998 AccessibleRelation methods.
3000 2002-01-01 Bill Haneman <bill.haneman@sun.com>
3002 API tweaks for today's API 'freeze'.
3005 Added placeholder functions to allow future compatible expansion
3006 of the IDL interfaces.
3008 * idl/Accessibility_Registry.idl:
3009 Changed generateKeyEvent to generateKeyboardEvent. Changed
3010 signature of this method to accept an optional keystring in
3011 parameter (for complex text input synthesis) and changed use of
3012 simple 'boolean' parameter in registerKeystrokeListener to a
3013 struct, EventListenerMode.
3015 * cspi/spi_accessible.c:
3017 * cspi/spi_streamablecontent.c:
3018 Added references to AccessibleStreamableContent interface, and
3019 definition and implementation of AccessibleStreamableContent
3022 * cspi/spi_registry.c:
3024 Changed generateKeyEvent API to generateKeyboardEvent,
3025 taking a new (optional) keystring parameter to support complex
3030 Renamed directory (to better reflect its actual purpose, bridging
3031 from at-spi to ATK). The .so module is also now named
3034 * idl/Accessibility_Hypertext.idl:
3035 * libspi/accessible.c:
3036 * libspi/hypertext.h:
3037 * libspi/hypertext.c:
3038 Changed Accessibility_Hypertext to *not* derive from
3041 * cspi/spi_registry.c:
3042 Added list of legal event type names for 'window' events, which
3043 completes the registry event API.
3045 2001-12-22 Marc Mulcahy <marc.mulcahy@sun.com>
3047 * at-bridge/bridge.c: Added registration for separate
3048 "Atktext:text-changed::insert" and "AtkText:text-changed::delete"
3049 signals. If either of the first two parameters to the generic
3050 bridge signal handler are ints, they are passed on as event
3051 details. This allows an AT to determine what text was inserted.
3053 2001-12-21 Bill Haneman <bill.haneman@sun.com>
3055 * registryd/deviceeventcontroller.c:
3056 Fixed regressions in generateKeyEvent caused by the removal of
3057 gdk_init from registryd; we now use pure X calls to connect to the
3058 display, which makes sense because deviceeventcontroller already
3059 uses a fair bit of X API (should eventually be migrated to a
3060 'portability layer').
3062 * registryd/desktop.c:
3063 Fixed minor regression in spi_desktop_init, changed the way the
3064 desktop name is being set to work with new spi_base API
3065 (gobject-based, rather than AtkObject-based).
3067 * registryd/Makefile.am:
3068 Minor revision of makefile to use XTST_LIBS variable rather than
3069 hard-wiring the Xtst LD_ADD element.
3071 * test/keysynth-demo.c:
3072 Tweaked an output message; added initialization of the
3073 'keystrings' member of the "switch listener" key_set.
3075 * libspi/relation.c:
3076 Squashed compile-time warning.
3078 * libspi/accessible.c:
3079 Cosmetic and formatting fixes, renamed a static method.
3081 2001-12-18 Marc Mulcahy <marc.mulcahy@sun.com>
3083 * libspi/accessible.c
3085 * libspi/application.c
3088 * libspi/component.c
3089 * libspi/editabletext.c
3090 * libspi/hyperlink.c
3091 * libspi/hypertext.c
3093 * libspi/selection.c
3097 * registryd/desktop.c:
3098 Changed SpiBase to contain a GObject pointer rather than an AtkObject
3100 2001-12-17 Bill Haneman <bill.haneman@sun.com>
3102 * idl/Accessibility_Registry.idl:
3103 Added boolean member 'is_text' to DeviceEvent. This is for the
3104 use of key events, and helps prevent ambiguity between composed
3105 key strings and keysym names, since both may potentially be
3106 returned in the 'event_string' member.
3108 * at-bridge/bridge.c:
3109 * registryd/deviceeventcontroller.c:
3110 Use the 'is_text' member when notifying device event listeners.
3111 Knon issue: composed characters are not dealt with correctly by
3112 the global key listener implementation yet.
3114 2001-12-17 Bill Haneman <bill.haneman@sun.com>
3116 * at-bridge/bridge.c:
3117 Namespaced local static methods to spi_atk_bridge_* where
3118 previously named bridge_*, and spi_* elsewhere.
3120 * at-bridge/bridge.c:
3121 * cspi/bonobo/cspi-bonobo-listener.c:
3122 Added demarshalling/conversion for string member of
3123 Accessibility_DeviceEvent to AccessibleKeystroke.
3125 * registryd/deviceeventcontroller.c:
3126 Added code to fill the Accessibility_DeviceEvent key string value
3127 member for global key events (i.e. from XGrabKey), to match
3128 behavior of Accessibility_DeviceEvent from the toolkit key events
3129 from the bridge. Fixed timestamp in global key event notifications.
3132 Added printout of key event's string value to
3133 report_ordinary_key_event, for demo/debugging purposes.
3135 2001-12-15 Bill Haneman <bill.haneman@sun.com>
3137 * idl/Accessibility_Registry.idl:
3138 Removed Accessibility_KeyStroke structure in favor of generic
3139 Accessibility_DeviceEvent structure.
3140 Changed Accessibility_ControllerEventMask from a struct to an
3143 * at-bridge/bridge.c:
3144 Changed APIs to use DeviceEvent structure as above, and removed
3145 bogus casting between these event structures.
3147 * cspi/spi-listener.h:
3148 Added keystring member of AccessibleKeystroke structure, to enable
3149 matching on event "names" rather than only hardware codes and
3153 Added keystrings member of AccessibleKeySet struct, to allow
3154 matching on event names (as above).
3155 Added declarations for SPI_createAccessibleKeySet and
3156 SPI_freeAccessibleKeySet. Due to changes in libspi, we now pass
3157 event modmasks directly as unsigned ints rather than structs with
3158 refcounts, in the DeviceEventController methods.
3160 * cspi/spi_registry.c:
3161 Add SPI_createAccessibleKeySet and SPI_freeAccessibleKeySet methods.
3163 * cspi/spi-roletypes.h:
3164 Added documentation of newly added SPI Roles.
3166 * cspi/bonobo/cspi-bonobo-listener.c:
3167 Changes in support of API changes above.
3169 * libspi/accessible.c:
3170 Converted APIs to use DeviceEvent structure (see IDL changes
3173 * registryd/deviceeventcontroller.c:
3174 Added DEControllerGrabMask structure to track keygrabs not only by
3175 modmask but by keyset as well; this allows us to do "global"
3176 (i.e. X) keygrabs on a per-key or keyset basis rather than always
3177 grabbing on AnyKey and then filtering after-the-fact.
3178 Bugfixes for event filtration mean that we don't get false matches
3179 on SPI_KEY_RELEASED, when only SPI_KEY_PRESSED was requested.
3181 * registryd/deviceeventcontroller.c:
3182 Namespaced a number of static methods to use spi_ prefix. Major
3183 revision to internals of global (i.e. X) key grabs.
3185 * registryd/deviceeventcontroller.h:
3186 Removed keymask_list and added keygrabs_list to
3187 SpiDeviceEventController struct.
3190 Added use of SPI_createAccessibleKeySet API when creating a
3191 listener for only one key. Attach a listener to "shift spacebar
3192 SPI_KEY_RELEASE" as a demonstration. Changed (incorrect) usage of
3193 X key event names to SPI key event names, so that listeners are
3194 registered for (SPI_KEY_PRESSED | SPI_KEY_RELEASED), for instance.
3196 * test/keysynth-demo.c:
3197 Changed (incorrect) use of X key event names (KeyPressed,
3198 KeyReleased) to SPI enums SPI_KEY_PRESSED and SPI_KEY_RELEASED.
3201 2001-12-12 Bill Haneman <bill.haneman@sun.com>
3203 * libspi/accessible.c:
3204 Convert all AtkRole enumerations to Accessibility_Role enums when
3205 getting a role from an AtkObject.
3207 * cspi/spi_accessible.c:
3208 Complete the conversion of Accessibility_Role enums at runtime to
3209 AccessibleRole (SPI_ROLE_*) roles in Accessible_getRole, so that
3210 role enums correctly match those given in spi-roletypes.h.
3211 Re-synchronize the local names list for AccessibleRole_getName ().
3212 AccessibleRole_getName is now deprecated, since it duplicates the
3213 more reliable Accessible_getRoleName.
3214 Added some role types from Accessibility_Role.idl.
3216 * idl/Accessibility_Role.idl:
3217 Added some role types used by AtkRole.
3219 2001-12-12 Bill Haneman <bill.haneman@sun.com>
3222 * cspi/spi_registry.c:
3224 * cspi/cspi-bonobo-listener.c:
3225 Namespaced all methods that did not begin with an "SPI_" or
3226 "Accessible" prefix to "SPI_".
3229 Homogenized internal function namespace to "cspi_" for statics.
3232 Patched tests to use the new CSPI API.
3234 * docs/reference/cspi/at-spi-cspi-sections.txt:
3235 Updated docs to reflect namespace changes, and added a number of
3236 methods to the documentation.
3238 * registryd/registry.c:
3239 Changed use of strings and string hashes in listener event
3240 matching and parse_event_string to use GQuark, which is guaranteed
3243 * registryd/registry.h:
3244 Squashed annoying warning.
3246 * idl/Accessibility_Role.idl:
3247 Extended range of available Accessibility_Role values.
3249 * cspi/spi_accessible.c:
3250 Re-ordered role names.
3252 2001-12-12 Bill Haneman <bill.haneman@sun.com>
3254 * idl/Accessibility_Value.idl:
3255 Revert use of union back to CORBA_double, since the double type is
3256 more efficient and can contain the other types without loss of
3259 * idl/Accessibility_Accessible.idl:
3260 Added method Accessibility:Accessible:getRoleName, to complement
3261 Accessibility:Accessible:getRole.
3263 * cspi/spi_accessible.c:
3265 Added C binding for above, Accessible_getRoleName (), and changed
3266 signature of Accessible_getRole () to return an AccessibleRole.
3268 * cspi/spi-roletypes.h:
3269 Changed AccessibleRole_getName to return a char * instead of a
3270 const char *. This method is now at least temporarily deprecated
3271 in favor of asking Accessibles for their RoleNames directly.
3274 Revert to match Accessibility_Value.idl;
3278 Change signature of AccessibleValue methods to use double rather
3282 * cspi/spi_accessible.c:
3283 Changed Accessible_getRole to return an AccessibleRole enum rather
3284 than a UTF-8 string. The UTF-8 string can still be obtained via
3285 AccessibleRole_getName ().
3287 * test/test-simple.c:
3288 Add test_action. Small fixup to match API change to Accessible_getRole.
3291 Bugfix for get_action_from_servant ().
3293 2001-12-11 Michael Meeks <michael@ximian.com>
3295 * libspi/libspi.h: remove registry.h and
3296 desktop.h, deviceeventcontroller.h
3298 * libspi/Makefile.am: remove registry.[ch],
3299 desktop.[ch], deviceeventcontroller.[ch]
3301 * registryd/Makefile.am: add registry.[ch],
3302 desktop.[ch], rename registryd.c to registry-main.c.
3303 add deviceeventcontroller.[ch]
3305 2001-12-11 Bill Haneman <bill.haneman@sun.com>
3308 Replace setenv() call with putenv ().
3310 * libspi/component.c:
3311 Bugfix in AccessibleComponent_getExtents (),
3314 2001-12-11 Michael Meeks <michael@ximian.com>
3316 * libspi/image.c (impl_getImageExtents): impl.
3317 (spi_image_class_init): upd.
3320 (AccessibleImage_getImageDescription): fix daft bug
3323 * test/test-simple.c (global_listener_cb): update
3324 to only quit if not --poke
3325 (main): catch --poke.
3326 (validate_accessible): upd. dumping, call test_image
3329 * libspi/Makefile.am (IDL_DEPS): fixup the IDL
3332 * idl/Accessibility.idl: update all IDL includes.
3334 * idl/*.idl - rename to namespace - this sucks, blame
3335 mjs' bad decision for oafd.
3337 * test/test-simple.c (create_test_window): add more tests.
3338 (create_tree): split this out.
3339 (validate_accessible): bugfix.
3341 2001-12-11 Michael Meeks <michael@ximian.com>
3343 * cspi/bonobo/cspi-bonobo-listener.c:
3344 (cspi_kestroke_listener_unref),
3345 (cspi_event_listener_unref): impl. undoing previous
3346 homenous environment - for Bill.
3348 * cspi/spi_table.c (long_seq_to_array): use
3351 * cspi/spi_main.c: split out all bonoboish bits into
3354 * cspi/spi-impl.h: upd. typedefs.
3356 * cspi/spi_registry.c: update to lowlevel API,
3357 return booleans to indicate success in some places.
3359 * cspi/spi_event.c: update to lowlevel API.
3361 * cspi/bonobo/Makefile.am: add.
3363 * cspi/bonobo/cspi-lowlevel.h: add
3365 * cspi/bonobo/cspi-bonobo.c: add
3367 * cspi/bonobo/cspi-bonobo-listener.[ch]: impl.
3369 * cspi/Makefile.am: remove spi-listener-impl.[ch],
3370 (SUBDIRS): add bonobo, link in the libs.
3372 * cspi/spi-util.c: kill this file.
3374 * TODO: merge in my bits.
3376 2001-12-11 Michael Meeks <michael@ximian.com>
3378 * test/test-simple.c (test_value, test_table, main):
3379 remove unused variables causing warnings.
3381 * configure.in: cleanup checks - require gail.
3383 2001-12-11 Bill Haneman <bill.haneman@sun.com>
3386 Changed Value interface to use SValue (scalars) rather than
3387 assuming all values are floats. This allows floats, doubles,
3388 longs, shorts, and unsigned values to be manipulated.
3389 Introduced Accessibility:SValue union.
3392 Updated to use new API above, and to work correctly with GValues
3393 of different types in AtkValue.
3396 Updated to use new API above. cspi's API is as yet unchanged.
3399 Updated the Value revision action item.
3401 2001-12-10 Bill Haneman <bill.haneman@sun.com>
3403 * test/test-simple.c:
3404 Added test_table (GtkTreeView widget in test window to follow).
3405 Un-commented test_value, added GtkRange widget.
3406 Added GtkTreeView widget with GtkListStore. It passes regression
3407 test but leaks one SPI object for some reason.
3410 Fixed bug in impl__set_currentValue.
3412 2001-12-10 Michael Meeks <michael@ximian.com>
3414 * cspi/spi_text.c: audit for exception handling,
3415 tolerating NULL object references safely etc.
3417 * cspi/spi_value.c: ditto.
3419 * cspi/spi_table.c (AccessibleTable_getSummary),
3420 (AccessibleTable_getAccessibleAt),
3421 (AccessibleTable_getRowHeader),
3422 (AccessibleTable_getColumnHeader),
3423 (AccessibleTable_getCaption): fix bugs hidden by
3425 (long_seq_to_array): impl.
3426 (AccessibleTable_getSelectedRows),
3427 (AccessibleTable_getSelectedColumns): use it.
3429 2001-12-10 Bill Haneman <bill.haneman@sun.com>
3432 Added a TODO list (rough and short for now).
3434 * cspi/spi_hyperlink.c:
3435 * cspi/spi_hypertext.c:
3436 Fixed macro name typos, and remove use of obsolete macro in
3437 AccessibleHyperlink_getLink.
3439 * cspi/spi_action.c:
3440 * cspi/spi_accessible.c:
3441 * cspi/spi_application.c:
3442 * cspi/spi_component.c:
3443 * cspi/spi_selection.c:
3446 Documentation fixes (removed return values from ref/unref methods).
3448 2001-12-10 Michael Meeks <michael@ximian.com>
3450 * cspi/spi_action.c: audit for exception handling,
3451 tolerating NULL object references safely etc.
3453 * cspi/spi_accessible.c: ditto.
3455 * cspi/spi_component.c: ditto.
3457 * cspi/spi_editabletext.c: ditto.
3459 * cspi/spi_hyperlink.c: ditto.
3461 * cspi/spi_hypertext.c: ditto.
3463 * cspi/spi_image.c: ditto.
3465 * cspi/spi_selection.c: ditto.
3467 2001-12-10 Michael Meeks <michael@ximian.com>
3469 * configure.in: use cspi/libspi.pc.in instead.
3471 * Makefile.am (pkgconfig_DATA): upd. to match.
3473 * test/simple-at.c (report_focus_event): kill hacks around
3474 bad return values, use putenv not setenv
3476 * libspi/desktop.c (impl_desktop_get_child_at_index): don't
3477 fire ChildGone - I killed it.
3479 * libspi/component.c
3480 (impl_accessibility_component_get_extents): remove
3483 * idl/Accessible.idl: kill ChildGone exception.
3485 * cspi/*.[ch]: kill int return from ref / unref.
3487 * cspi/spi_main.c (cspi_object_add_check): fold into
3488 (cspi_object_add): here.
3490 * cspi/spi_component.c (AccessibleComponent_getExtents):
3491 handle exceptions elegantly.
3493 * cspi/spi-private.h (cspi_check_ev_return),
3494 (cspi_return_if_fail): impl.
3496 * cspi/spi_accessible.c: use extensively.
3497 (AccessibleStateSet_equals): add direct compare check.
3499 * cspi/spi_selection.c: tolerate NULL objs, and check
3500 exceptions before return.
3502 * cspi/spi-util.c (cspi_warn_ev): rename to
3503 (cspi_check_ev): this & don't pass ev in; no point.
3505 2001-12-10 Michael Meeks <michael@ximian.com>
3507 * test/test-simple.c: use putenv not setenv
3508 (get_environment_vars): more chatty if you're not using
3511 * test/simple-at.c: do the setenv so more people see the
3514 2001-12-10 Bill Haneman <bill.haneman@sun.com>
3516 * libspi/registry.c:
3517 Changed check of CORBA_environment on notification to be a warning
3518 instead of an error for the moment, since we can recover from this
3519 error when caused by a queued notification from a dead app.
3522 Fixes for spi_value, use G_TYPE_DOUBLE for atk_value values (as
3523 used by all current implementors of AtkValue), and coerce to
3524 CORBA_float. (Proper general case fix may require change to Value.idl).
3526 2001-12-09 Bill Haneman <bill.haneman@sun.com>
3530 * cspi/spi_accessible.c:
3531 Documentation fixes: added user_data params to documentation for
3532 listeners and callbacks.
3534 * cspi/spi_accessible.c:
3535 Changed AccessibleStateSet_compare to return a
3536 StateSet rather than return the difference set into a third parameter.
3539 2001-12-09 Bill Haneman <bill.haneman@sun.com>
3542 Replace use of AM_PROG_XML_I18N_TOOLS macro with AC_PROG_INTLTOOL.
3543 remove 'dnl' comment line from AC_OUTPUT (autoconf doesn't like
3547 Remove subdirectory po from SUBDIRS for now.
3549 * at-bridge/bridge.c:
3550 Beefed up a couple of debug printouts.
3551 One-line fix for signal notification name formatting.
3553 * libspi/accessible.c:
3554 Added assertion to spi_accessible_new ().
3556 * libspi/application.c:
3557 Put #ifdef qualifiers around a printf.
3560 Fixed derivation (from BONOBO_OBJECT to SPI_BASE).
3562 * registryd/Makefile.am:
3564 Replaces use of XML_I18N_MERGE_SERVER_RULE with
3565 INTLTOOL_SERVER_RULE macro.
3568 Added an event listener for several ATK signals, for
3569 testing and debugging. Removed a few g_warnings.
3570 Added test output if focussed item implements the Value interface.
3572 * test/test-simple.c:
3573 Added test_value () function (known not to pass at the moment, so
3574 not actually called yet.
3576 2001-12-08 Michael Meeks <michael@ximian.com>
3578 * at-bridge/bridge.c (bridge_focus_tracker),
3579 (emit_eventv): fix the same ref. leak.
3580 (register_atk_event_listeners): don't leak.
3582 * cspi/spi-listener-impl.c (cspi_event): more
3583 protection from client code.
3585 * test/test-simple.c (test_desktop): unref the app.
3587 * test/Makefile.am: upd. TESTS.
3589 * at-bridge/bridge.c (bridge_exit_func): release the registry.
3591 * test/keysynth-demo.c (keysynth_exit): unref the listeners.
3593 * cspi/spi_accessible.c (Accessible_queryInterface): constify.
3595 * cspi/spi_registry.c: constify in strings.
3596 (deregisterGlobalEventListenerAll): don't release the ref.
3598 * cspi/spi.h: start removing redundant / conflicting
3599 gtkdoc comments, making the API readable at a glance :-)
3601 * cspi/spi_event.c (AccessibleEventListener_unref): impl.
3603 * test/keysynth-demo.c (keysynth_exit, main): upd.
3605 * test/simple-at.c (main, simple_at_exit): upd.
3607 * test/test-simple.c (unutterable_horror): kill.
3608 (utterable_normal_derefs): kill.
3609 (main): upd & do a setenv before gtk_init, so that we
3610 can use memprof - and to save the pain of remembering
3611 this, if we're running under memprof - don't exit.
3613 * cspi/spi_main.c (SPI_exit): return exit status
3615 (SPI_event_quit): impl.
3616 (SPI_event_main): simplify.
3617 (cspi_is_gnome_app): kill.
3618 (SPI_init): kill isGNOMEapp arg.
3620 * at-bridge/bridge.c (register_atk_event_listeners):
3621 re-instate the unref.
3622 (bridge_exit_func): don't re-activate the registry,
3623 protect vs. theoretical re-entry, use the
3624 AT_BRIDGE_SHUTDOWN env. var to determine whether to
3625 assert a clean shutdown - for regression tests.
3627 2001-12-08 Abel Cheung <maddog@linux.org.hk>
3629 * configure.in: Comment out dummy i18n support for now,
3630 otherwise it fails to build.
3631 * idl/Makefile.am: Add Selection.idl and Hypertext.idl to
3632 EXTRA_DIST. They are missing in tarball.
3634 2001-12-07 Michael Meeks <michael@ximian.com>
3636 * util/magnifier.c: kill bonobo activation reg. race.
3638 * libspi/component.c
3639 (impl_accessibility_component_get_extents): make it match
3642 * libspi/registry.c (_registry_notify_listeners):
3643 re-remove X headers & reconcile conflicts.
3644 (spi_listener_struct_free): bad conflict resolve.
3645 (impl_accessibility_registry_register_application):
3646 more bad merging fixed.
3647 (impl_accessibility_registry_deregister_application): ditto.
3648 (spi_registry_new): ditto.
3649 (spi_registry_init): don't have an applications field.
3651 [ merge fixups2 branch to here ]
3652 2001-12-07 Michael Meeks <michael@ximian.com>
3654 * test/simple-at.c (report_focus_event),
3655 (report_focussed_accessible): remove g_warning debug.
3657 2001-12-07 Michael Meeks <michael@ximian.com>
3659 * test/test-simple.c (validate_tree): comment out some checks.
3660 (test_desktop): app now not registered idly - horay.
3662 2001-12-07 Michael Meeks <michael@ximian.com>
3664 * cspi/spi_registry.c
3665 (registerAccessibleKeystrokeListener): clean, stop it leaking
3666 great swathes of memory, and device event controller references.
3667 ensure we always pass valid sequences.
3668 (deregisterAccessibleKeystrokeListener): ditto.
3669 (generateKeyEvent): upd.
3671 * at-bridge/bridge.c (bridge_key_listener): handle
3672 registry dead exception gracefully.
3673 (bridge_focus_tracker, emit_eventv): free ev.
3675 * test/simple-at.c (report_focus_event): fix polarity.
3677 * libspi/application.c (notify_listeners): kill the ev
3678 argument, and make sure we init the ev we use.
3679 (spi_application_object_event_listener): split out a chunk
3680 (get_atk_object_ref): here & fixup.
3681 (reverse_lookup_name_for_toolkit_event): make const.
3682 (spi_application_toolkit_event_listener): fixup, kill leaks
3685 * at-bridge/bridge.c (register_atk_event_listeners):
3686 don't unref the noop object - causes grief.
3688 * libspi/registry.c: remove the X headers.
3689 turn off the debug churn.
3691 * libspi/accessible.c (spi_accessible_new_return): only
3692 release the ref if we are supposed to [doh]
3694 * test/simple-at.c (report_button_press, report_focus_event):
3695 guard vs. unexpected exit.
3697 * at-bridge/bridge.c (gtk_module_init): prune printf.
3698 (bridge_exit_func): fix app unref.
3700 * libspi/Makefile.am: don't install registry or desktop.h
3702 * libspi/*.h: update includes.
3704 * libspi/application.h: don't include ourself, or
3705 other redundant headers.
3707 2001-12-06 Michael Meeks <michael@ximian.com>
3709 * libspi/accessible.c
3710 (get_accessible_from_servant): impl.
3711 Upd. all CORBA impl.s to use it killing cut and paste.
3713 * cspi/spi_main.c (cspi_cleanup): guard vs. double
3715 (SPI_init): register atexit cleanup handler here.
3717 2001-12-06 Michael Meeks <michael@ximian.com>
3719 * at-bridge/bridge.c (gtk_module_init): g_error on
3720 activation exception
3722 2001-12-06 Michael Meeks <michael@ximian.com>
3724 * at-bridge/bridge.c (gtk_module_init): some sort of
3725 confusing merge clash - reverted.
3726 (bridge_idle_init): ditto.
3728 * test/test-simple.c (main, utterable_normal_derefs):
3729 merge from Bill - somehow not committed.
3731 2001-12-06 Michael Meeks <michael@ximian.com>
3733 * libspi/value.c (spi_value_class_init): upd.
3734 (spi_value_finalize): kill.
3736 * libspi/table.c (spi_table_finalize): kill.
3737 (spi_table_interface_new): upd.
3738 (spi_table_class_init): upd.
3739 (get_table_from_servant): impl.
3740 Upd. all CORBA impl.s to use it killing yet more cut and paste.
3742 * libspi/selection.c (spi_selection_finalize): kill.
3743 (spi_selection_interface_new): upd.
3744 (spi_selection_class_init): upd.
3745 (get_selection_from_servant): impl.
3746 Upd. all CORBA impl.s to use it killing yet more cut and paste.
3748 * libspi/relation.c (spi_relation_finalize): kill.
3749 (spi_relation_class_init, spi_relation_new): upd
3751 * libspi/image.c (spi_image_finalize): kill.
3752 (spi_image_class_init): upd.
3753 (spi_image_interface_new): upd.
3754 (get_image_from_servant): impl.
3755 Upd. all CORBA impl.s to use it killing yet more cut and paste.
3757 * libspi/hyperlink.c (spi_hyperlink_class_init): upd.
3758 (spi_hyperlink_finalize): kill.
3759 (spi_hyperlink_new): upd.
3760 (get_hyperlink_from_servant): impl.
3761 Upd. all CORBA impl.s to use it killing yet more cut and paste.
3763 * libspi/hypertext.c (spi_hypertext_interface_new): upd.
3764 (spi_hypertext_finalize): kill.
3765 (spi_hypertext_class_init): upd.
3766 (get_hypertext_from_servant): impl.
3767 Upd. all CORBA impl.s to use it killing yet more cut and paste.
3769 * libspi/editabletext.c (spi_editable_text_finalize): kill.
3770 (spi_editable_text_interface_new): upd.
3771 (get_editable_text_from_servant): impl.
3772 Upd. all CORBA impl.s to use it killing yet more cut and paste.
3774 * libspi/text.c (get_text_from_servant): impl.
3775 All impls - update to use it killing more cut and paste,
3776 also fix bad string returns on duff args ( a somewhat
3777 impossible case to handle - but hey ).
3778 (spi_text_construct): impl.
3779 (spi_text_interface_new): upd.
3780 (spi_text_object_finalize): kill.
3782 * libspi/component.c
3783 (accessibility_component_object_finalize): kill.
3784 (spi_component_class_init): upd.
3785 (get_component_from_servant): impl. helper to kill cut & paste.
3786 (impl_accessibility_component_contains):
3787 (impl_accessibility_component_get_accessible_at_point):
3788 (impl_accessibility_component_get_position):
3789 (impl_accessibility_component_get_extents):
3790 (impl_accessibility_component_get_mdi_z_order):
3791 (impl_accessibility_component_get_layer):
3792 (spi_component_interface_new): upd.
3794 * libspi/action.c (spi_action_finalize): kill.
3795 (spi_action_class_init): upd. inherit from SpiObject.
3796 (spi_action_interface_new): upd.
3797 (get_action_from_servant): impl. helper to reduce cut & paste.
3798 (impl_getKeyBinding, impl_getName, impl_doAction),
3799 (impl_getDescription): Use it everywhere.
3801 * cspi/spi_main.c (get_live_refs): a pointer hash.
3802 (spi_object_hash, spi_object_equal): comment out.
3803 There are issues with CORBA object hashing that need
3806 * libspi/application.c (spi_application_init),
3807 (spi_application_new): upd.
3809 * libspi/accessible.c (spi_accessible_object_finalize): kill.
3810 (spi_accessible_class_init): upd.
3811 s/accessible/object/ in epv methods.
3813 2001-12-05 Bill Haneman <bill.haneman@sun.com>
3815 * at-bridge/bridge.c:
3816 Reorder the bridge initialization into the bridge gtk_module_init,
3817 an immediate call to bridge_register_app, and an idle_add for
3818 register_atk_event_listeners (the only code that *must* wait until
3819 GTK+ is initialized) via bridge_idle_add. Bridge_register_app does
3820 the activation, creates the application's Accessible object, and
3821 queues the bridge_idle_init function. Restored call to
3822 Accessibility_Registry_deregisterApplication().
3823 Prior to making this call we obtain a new reference to the
3824 registry, which is a temporary hack that helps us handle apps that
3825 shut down the bonobo mainloop before we get there.
3827 * libspi/registry.c:
3828 Fix string leakage in debug block, and don't segv if a an app
3829 dies before its event notifications have been propagated.
3832 Modify cspi_check_ev() to call g_warning() rather than g_error(),
3833 as stopgap measure until we get proper exception handling when
3834 objects die during or before interrogation.
3838 Moved use of isGNOMEApp flag from SPI_event_main to SPI_init.
3839 Also changed default value of is_gnome_app to TRUE.
3842 * test/keysynth-demo.c:
3843 Changed use of SPI_init and SPI_event_main to reflect API change above.
3846 Made report_focus_event check the warning value from getName
3847 before reporting on focussed accessible; simplifies handling of
3848 notifications from dead objects.
3850 * test/test-simple.c: (Changes not in this patch since source is
3853 2001-12-05 Michael Meeks <michael@ximian.com>
3855 * registryd/registryd.c (main): protect against
3856 bonobo-activation startup race condition.
3858 * cspi/spi_main.c (cspi_object_add_check): cope
3859 with the exception elegantly.
3861 * idl/Accessible.idl: decl. ChildGone
3863 * libspi/desktop.c (spi_desktop_dispose): impl.
3864 (spi_desktop_class_init): upd.
3865 (spi_desktop_add_application),
3866 (spi_desktop_remove_application),
3867 (abnormal_application_termination): impl.
3868 (impl_desktop_get_child_at_index): re-impl.
3871 (impl_accessibility_registry_deregister_application),
3872 (impl_accessibility_registry_register_application):
3873 kill excessive debug clutter.
3875 * test/test-simple.c (test_misc): test some NULL
3876 tolerance. (main): upd.
3878 * cspi/spi_main.c (cspi_accessible_is_a): a NULL
3879 implements no interfaces - so let's not crash.
3881 * cspi/spi_accessible.c (Accessible_queryInterface): ditto.
3883 * libspi/accessible.c (spi_accessible_new_return): impl.
3884 helper to calm the cut and paste, to cope with
3885 NULL AtkObjects effectively and efficiently, and to kill
3886 the referencing bugs.
3888 * libspi/table.c (impl_getAccessibleAt),
3889 (impl_getRowHeader, impl_getColumnHeader): upd.
3891 * libspi/hyperlink.c (impl_getObject): upd.
3893 * libspi/accessible.c
3894 (impl_accessibility_accessible_get_child_at_index): upd.
3896 * libspi/component.c
3897 (impl_accessibility_component_get_accessible_at_point): upd.
3899 * test/test-simple.c (test_editable_text, test_text): impl.
3902 * cspi/spi_editabletext.c
3903 (AccessibleEditableText_insertText): constify.
3905 * test/test-simple.c (focus_me): make more robust.
3907 * libspi/accessible.c: remove some printfs in methods that
3908 we test and work fine, so we can get a clean tree dump.
3910 * test/test-simple.c (validate_accessible),
3911 (validate_tree): make tree dumping pretty too.
3913 * at-bridge/bridge.c (bridge_signal_listener): upd. so
3914 it builds without debug on.
3916 * test/test-simple.c (validate_accessible): fix the most
3919 * cspi/spi_main.c (spi_object_release): leave the nicely
3920 blanked memory around if in debug mode.
3922 * cspi/spi-listener-impl.c (cspi_event): use add_check.
3924 [committed to fixups2]
3925 2001-12-05 Michael Meeks <michael@ximian.com>
3927 * libspi/editabletext.c
3928 (spi_editable_text_class_init): g_type_class_peek_parent,
3929 not interface peek - so we finalize cleanly.
3931 * libspi/accessible.c (spi_accessible_new): kill debug.
3933 * test/test-simple.c (validate_accessible): fix ref.
3934 leak, print strings before freeing them; sigh, comment a
3935 chunk out due to strangeness.
3936 (validate_tree): unref the child after use.
3938 * cspi/spi_component.c (AccessibleComponent_getLayer):
3939 add missing break statement, switch on zlayer not the
3940 uninitialized retval.
3942 * cspi/spi_main.c (cspi_object_add): add assert, local ref
3943 before (possibly re-entering) remote unref.
3945 * test/simple-at.c (main): unref the desktop.
3947 * cspi/spi_accessible.c (cspi_accessible_is_a): move
3950 * cspi/spi_main.c (cspi_accessible_is_a): here to
3951 isolate bonobo API usage more.
3953 * libspi/registry.c (impl_accessibility_registry_register_application):
3954 prune bogus comment.
3956 2001-12-04 Michael Meeks <michael@ximian.com>
3958 * test/test-simple.c (validate_tree): upd.
3959 IndexInParent check to make it more lucid.
3960 (validate_accessible): dump the tree.
3962 * libspi/accessible.c (de_register_public_ref),
3963 (get_public_refs): impl.
3964 (spi_accessible_new): make more efficient & intuitive.
3965 Now IndexInParent check works.
3967 2001-12-04 Michael Meeks <michael@ximian.com>
3969 * cspi/spi-util.h: remove.
3971 * cspi/spi.h: move SPI_freeString here
3973 * libspi/component.c (impl_accessibility_component_get_layer):
3975 (impl_accessibility_component_get_mdi_z_order): ditto,
3976 return -1 on error - is this ok ?
3978 * test/test-simple.c (test_application): impl.
3980 * cspi/spi_accessible.c (Accessible_getApplication),
3981 (Accessible_isApplication): impl.
3983 * libspi/registry.c (spi_listener_struct_free): release
3984 the CORBA reference too.
3986 * libspi/accessible.c
3987 (impl_accessibility_accessible_get_parent): fix ref leak.
3989 * libspi/registry.c (spi_registry_new): make the registry
3990 immortal - we don't want it to go away ever.
3992 * libspi/application.c
3993 (spi_accessible_application_finalize): impl. cleanup.
3995 * cspi/spi_registry.c
3996 (deregisterGlobalEventListenerAll),
3997 (deregisterGlobalEventListener),
3998 (deregisterAccessibleKeystrokeListener): fix ref leak.
4000 * cspi/spi_main.c (SPI_init): remove redundant ref.
4002 * test/test-simple.c (unutterable_horror): impl. to force a
4007 (impl_accessibility_registry_deregister_application): release
4008 the application when we de-register it.
4010 * at-bridge/bridge.c (bridge_exit_func): comment out shutdown
4011 until we have the infastructure to get it right.
4013 2001-12-03 Michael Meeks <michael@ximian.com>
4015 * libspi/Makefile.am: only build eventlistener.[ch]
4017 * libspi/accessible.c
4018 (impl_accessibility_accessible_get_child_at_index): don't leak.
4020 * at-bridge/bridge.c (bridge_exit_func): cope with an exit
4021 before we hit the idle handler.
4023 * cspi/spi-util.c (cspi_check_ev): g_error is far nicer for
4024 debugging than exit.
4026 * at-bridge/bridge.c (bridge_focus_tracker): fix ref issue.
4028 * libspi/listener.c (impl_notify_event): check source
4029 not NIL before unref.
4031 * libspi/registry.c (impl_registry_notify_event): ditto.
4033 * libspi/eventlistener.c
4034 (impl_accessible_event_notify_event): unref the source.
4036 * libspi/accessibleeventlistener.c
4037 (impl_accessible_event_notify_event): unref the source.
4039 * idl/Event.idl: remove 'hash_id' attribute - of no
4042 * libspi/application.c (notify_listeners): upd list
4044 (spi_application_object_event_listener),
4045 (spi_application_toolkit_event_listener): upd to do correct
4049 (_registry_notify_listeners): update.
4050 (parse_event_type): this method also leaks like a sieve.
4051 (impl_accessibility_registry_deregister_global_event_listener):
4052 fix ETYPE_WINDOW case.
4054 * libspi/application.c
4055 (impl_accessibility_application_register_object_event_listener):
4058 * libspi/hyperlink.c (impl_getObject): fix ref mistake.
4060 * libspi/hypertext.c (impl_getLink): ditto.
4062 * cspi/spi_main.c (cspi_object_add): remove
4063 bogus CORBA_Object_duplicate.
4065 * cspi/spi-listener-impl.c (cspi_event): dup/ref
4068 * cspi/spi_accessible.c
4069 (Accessible_getRelationSet): fix leak / referencing issue.
4071 * cspi/spi_main.c (spi_object_hash, spi_object_equal): impl.
4072 (cspi_object_add, cspi_object_unref): upd.
4073 (spi_object_release, get_live_refs): impl.
4074 (cspi_cleanup): simplify.
4076 * *.[ch]: s/boolean/SpiBoolean/
4078 * cspi/spi_accessible.c (role_names): actualy order so it
4079 corresponds with the enum !
4081 * test/test-simple.c (test_roles): check some role strings
4082 vs. enums to detect offset errors.
4084 2001-12-01 Michael Meeks <michael@ximian.com>
4086 * cspi/spi_main.c (cspi_object_add_check): impl. helper.
4088 * cspi/spi_accessible.c (Accessible_getChildAtIndex):
4090 (Accessible_getChildAtIndex): use cspi_add_check so we
4091 check the ev before using a (possibly) invalid value.
4093 * libspi/accessible.c
4094 (impl_accessibility_accessible_get_parent): don't segv
4097 * at-bridge/bridge.c (gtk_module_init): upd.
4098 (bridge_property_event_listener): don't leak strings
4100 (bridge_state_event_listener),
4101 (bridge_property_event_listener): don't use a static
4102 buffer in case of recursive event emission &
4103 re-enterancy - split out the swathe of cut and paste
4105 (emit_eventv): and fix 2 ref leaks here & comply to the
4107 (bridge_register_app): rename to
4108 (bridge_idle_init): this and kill arg parsing, split
4109 various inits & bonobo-activation registration to module
4110 init time, kill referencing error.
4111 (bridge_exit_func): fix the same leak.
4112 (bridge_focus_tracker): don't leak event structures
4114 (bridge_signal_listener): more leakage and cut & paste
4116 (bridge_key_listener): return the result - FIXME is
4117 this polarity correct ?
4118 (accessibility_keystroke_from_atk_key_event): rename
4119 (accessibility_init_keystroke_from_atk_key_event): and stop
4121 (gtk_module_init): return a value - not that it is checked by
4123 (bridge_key_listener): register my horror at casting between
4124 IDL defined structs.
4125 (bridge_get_registry): kill - not used.
4127 * cspi/spi_accessible.c (Accessible_getRole): make return const.
4129 * test/test-simple.c (test_roles): impl.
4130 (test_desktop, validate_accessible, validate_tree): impl.
4132 * cspi/spi_accessible.c (role_names): fixup bogus
4133 MAX_ROLES setup, make constants const for efficient linkage
4134 (AccessibleRole_getName): conform to coding style, make
4137 2001-11-30 Michael Meeks <michael@ximian.com>
4139 * cspi/spi.h: add missing prototype.
4141 * libspi/registry.c (spi_listener_struct_new): fix sig.
4143 * test/Makefile.am: add test-simple
4145 * test/test-simple.c: add
4147 * test/test.sh: add.
4149 * cspi/spi_main.c (SPI_init): make SPI_inited module global,
4151 * at-bridge/bridge.c (gtk_module_init): don't do an idle init,
4152 do it straight - since otherwise we often get an activation race.
4154 [ work before Bill duplicated a chunk of it ... ]
4155 2001-11-30 Michael Meeks <michael@ximian.com>
4157 * libspi/keystrokelistener.c
4158 (spi_keystroke_listener_class_init): fixup arg
4161 * libspi/eventlistener.c
4162 (spi_event_listener_class_init): ditto.
4164 * tests/test.sh: add.
4166 * cspi/spi-listener-impl.h: update macros.
4168 * cspi/spi-listener-impl.c
4169 (cspi_event_listener_remove_callback): add
4170 correct pre-conditions.
4172 * cspi/spi_main.c (SPI_exit): guard vs. double
4173 exits, exit the mainloop nicely.
4174 (SPI_event_main): make more sense.
4175 (SPI_init): move the atexit evilness here so we
4176 always do it (yuck).
4177 (SPI_event_main): upd.
4179 * test/simple-at.c: update for listener changes.
4181 * registryd/registryd.c (main): prune kruft.
4183 * libspi/libspi.h: upd.
4185 * libspi/eventlistener.[ch]: rename broken macros.
4187 * libspi/accessibleeventlistener.[ch]: remove.
4189 * libspi/*.[ch]: IS_SPI_... -> SPI_IS_...
4191 * test/test-simple.c: Add - automated tests.
4193 * cspi/spi-listener-impl.c (cspi_event),
4194 (cspi_key_event): add user_data to invoke.
4195 (cspi_keystroke_listener_finalize): impl.
4196 (cspi_keystroke_listener_class_init): upd.
4199 (createAccessibleEventListener),
4200 (AccessibleEventListener_addCallback),
4201 (createAccessibleKeystrokeListener),
4202 (AccessibleKeystrokeListener_addCallback): upd.
4204 * libspi/deviceeventcontroller.c
4205 (spi_device_event_controller_check_key_event): add public proto.
4208 (impl_accessibility_registry_deregister_global_event_listener):
4209 always init listeners.
4210 (_registry_notify_listeners): yes it is.
4212 * cspi/spi-listener-impl.c (cspi_key_event):
4214 (cspi_event_listener_finalize): impl.
4215 (cspi_event_listener_class_init): hook up.
4216 (event_handler_new, event_handler_free),
4217 (event_list_remove_by_callback): impl.
4218 (cspi_event_listener_remove_callback),
4219 (cspi_keystroke_listener_remove_callback),
4220 (cspi_keystroke_listener_add_callback),
4221 (cspi_event_listener_add_callback): upd.
4223 * libspi/keystrokelistener.c
4224 (keystroke_listener_object_finalize): kill
4225 (spi_keystroke_listener_class_init): upd.
4226 (spi_keystroke_listener_add_callback),
4227 (spi_keystroke_listener_remove_callback): kill,
4229 (impl_key_event): prune drasticaly.
4231 * libspi/eventlistener.c
4232 (spi_event_listener_add_callback),
4233 (spi_event_listener_remove_callback): kill, use
4235 (impl_accessible_event_notify_event): upd.
4236 (spi_event_listener_object_finalize): remove.
4238 * libspi/Makefile.am: use eventlistener.[ch]
4240 2001-12-04 Bill Haneman <bill.haneman@sun.com>
4242 * libspi/registry.c (_registry_notify_listeners):
4243 Changed listener loop iteration to use preferred convention.
4244 Got rid of string memory leaks caused be calling g_strconcat
4245 inside function calls.
4247 * libspi/registry.c (parse_event_type):
4248 Stopped g_strconcat memory leaks, free the g_strsplit return,
4249 g_strdup the split pieces when used, etc.
4251 2001-12-04 Bill Haneman <bill.haneman@sun.com>
4254 Change method 'compare' to return a 'difference set' rather than
4255 taking a StateSet as an out parameter (more Java-friendly).
4257 * idl/Accessible.idl:
4258 Added CORBA struct 'BoundingBox', to faciliate API changes below:
4260 * idl/Component.idl:
4262 Changed methods 'getExtents' and 'getImageExtents' in these
4263 interfaces to return a BoundingBox structure.
4264 (getPosition and getSize are redundant and possibly should be
4265 removed, rather than creating a corresponding Point struct.)
4267 * cspi/spi_component.c:
4268 Modify implementation of getExtents to reflect the above IDL
4273 Add (missing) AccessibleImage_getExtents () API.
4275 * docs/reference/cspi/at-spi-cspi-sections.txt:
4276 Added AccessibleImage_getImageExtents () to docs.
4278 2001-12-03 Bill Haneman <bill.haneman@sun.com>
4280 * idl/Component.idl:
4281 Added two methods, getLayer () and getMDIZOrder (), to reflect
4282 the new ATK methods atk_object_get_layer and
4283 atk_object_get_mdi_z_order. (Which arguably should be part of the
4284 AtkComponent API and AtkObject). Also added an enum,
4285 ComponentLayer, for the first method's return value.
4287 * libspi/component.c:
4288 Added implementations for these methods.
4290 * cspi/spi_component.c:
4292 Added cspi binding methods for above,
4293 AccessibleComponent_getLayer() and
4294 AccessibleComponent_getMDIZOrder().
4295 Added cspi enum 'AccessibleComponentLayer'.
4297 * docs/reference/cspi/at-spi-cspi-sections.txt:
4298 Added above methods to docs.
4302 Changed typedef for 'boolean' type (and all references to it) to
4303 SPIBoolean, to avoid keyword clashes with C++.
4306 Changed usages of 'boolean' to SPIBoolean.
4308 * test/keysynth-demo.c:
4309 Changed usages of 'boolean' to 'gboolean' (since this is a gnome
4310 app), except where SPIBoolean is required by the callbacks API.
4312 2001-12-02 Bill Haneman <bill.haneman@sun.com>
4314 * cspi/spi_registry.c:
4315 Removed obsolete X event loop for passive keygrabs (which now
4318 * registryd/registryd.c:
4319 Removed unnecessary call to gdk_init() [cruft]. This also allows
4320 removal of requisite gdk-2.0 from REGISTRYD_LIBS/CFLAGS in
4323 2001-11-28 Bill Haneman <bill.haneman@sun.com>
4325 * docs/reference/cspi:
4326 Included docs for SPI_freeString in generated documentation.
4329 Renamed spi_freeString to SPI_freeString, for consistency. Added
4330 documentation for this function.
4333 Renamed spi_freeString to SPI_freeString, for consistency.
4334 Removed obsolete method declaration string_from_corba_string.
4336 * test/keysynth-demo.c:
4337 Small tweak to comments.
4340 Stopped leaking the strings returned from CSPI.
4342 2001-11-28 Bill Haneman <bill.haneman@sun.com>
4344 Merged Michael's branch (see his ChangeLog entries below).
4346 * at-bridge/bridge.c: Explicitly hold a ref to the registry while
4347 bridge is alive, release on exit.
4349 * cspi/spi-listener-impl.c (cspi_event_listener_add_callback):
4350 Fix type check macro.
4353 Added AccessibleKeystrokeListener_unref() method to reduce leakage.
4356 Added is_gnome_app static, and method cspi_is_gnome_app(),
4357 so we can call the appropriate shutdown routine at exit in SPI_exit.
4359 * cspi/spi_main.c (cspi_object_ref):
4360 Duplicate the corba object passed in, since we're keeping it around.
4362 * cspi/SPI_exit.c, cspi_cleanup:
4363 Moved the releasing of the live refs to its own function, so we
4364 can put it in g_atexit (). Call the appropriate shutdown API
4365 depending on whethe calling client is a gnome app or not
4366 (bonobo_main_quit or CORBA_ORB_shutdown).
4368 * cspi/spi_registry.c (deregisterGlobalEventListenerAll):
4369 Unref the listener when this method is called, after
4370 deregistration. Updated the API docs to note this behavior.
4372 * libspi/accessible.c (impl_get_parent, impl_get_child_at_index):
4373 Bugfixes: Ref the bonobo object when returning a parent or child
4374 reference, or an AccessibleRelation. Generally made sure
4375 BonoboObject refcount is incremented whenever we return an
4378 * libspi/accessibleeventlistener.c (spi_event_listener_class_init):
4379 Fixed typo/bug in signal declaration.
4381 * libspi/accessibleeventlistener.h:
4384 * libspi/application.c (spi_application_new):
4385 Fixed leak in initialization.
4388 Remembered to increment bonobo-object refcount when returning
4389 children (applications) from desktop object.
4390 Added (empty) finalize method.
4392 * libspi/deviceeventcontroller.c:
4393 Hold a ref to listeners inside DEControllerKeyListeners.
4394 Added dec_key_listener_free() method. Use prepend instead of
4395 append in key_listener list. Fixed some refcount madness and
4396 leaks in the listener registration/deregistration - deregistration
4397 now calls dec_key_listener_free() on listeners, and on the
4398 temporarily constructed dec_key_listener() used to perform the search/match.
4400 * libspi/hypertext.c (spi_hypertest_finalize):
4401 Fixed 'double unref' of AtkObject held by parent SpiAccessibleText
4402 class. Also fixed spi_hypertext_interface_new() and
4403 SpiHypertextClass. Fixed a couple of paren-whitespace formatting bugs.
4405 * libspi/hypertext.h:
4406 Removed pointless and duplicate AtkObject pointer from
4409 * libspi/keystrokelistener.c:
4410 Fixed incorrect type of keystroke_listener_parent_class,
4411 renamed keystroke_listener_object_finalize to
4412 spi_keystroke_listener_object_finalize.
4413 Fixed typo in signal declaration
4414 (spi_keystroke_listener_class_init).
4416 * libspi/registry.c:
4417 Added funcsions spi_listener_struct_new() and
4418 spi_listener_struct_free() to help with memory management issues.
4419 We also now use these methods instead of gnew + poking stuff into
4420 the struct, and to decrement listener counts/free the listeners
4421 when deregistering them.
4422 Fix more refcount bugs in getDesktop() and
4423 getDeviceEventController().
4426 De-ref the desktop after enumerating the applications. Explicitly
4427 decrement the refcounts on the created listeners on exit (using
4428 _unref for keystroke listeners, and via the
4429 deregisterGlobalEventListenerAll command for other event
4432 2001-11-27 Michael Meeks <michael@ximian.com>
4434 * cspi/spi-listener.h: fixup enum.
4436 2001-11-27 Michael Meeks <michael@ximian.com>
4438 * cspi/spi-listener-impl.c (cspi_event_listener_new),
4439 (cspi_keystroke_listener_new): Use the cspi variants.
4441 2001-11-26 Michael Meeks <michael@ximian.com>
4443 * test/keysynth-demo.c: fix 2 compile warnings, missing
4446 * test/simple-at.c (report_focussed_accessible),
4447 (report_focus_event, report_button_press),
4448 (check_property_change, is_command_key),
4449 (report_ordinary_key_event, report_command_key_event): upd.
4451 * util/mag_client.h: include pre-requisites.
4453 * libspi/accessibleeventlistener.c
4454 (spi_event_listener_object_finalize): free any lingering
4457 * libspi/keystrokelistener.c
4458 (keystroke_listener_object_finalize): ditto.
4460 * cspi/spi-listener-impl.[ch]: Add to implement cspi style
4461 callbacks, with cspi types.
4463 * cspi/spi_event.c (createAccessibleEventListener): chain to
4464 (AccessibleEventListener_addCallback): here.
4465 (createAccessibleKeystrokeListener): chain to
4466 (AccessibleKeystrokeListener_addCallback): here.
4468 * libspi/keystrokelistener.c
4469 (spi_keystroke_listener_class_init): add signal.
4470 (impl_key_event): emit the event.
4471 (boolean_handled_accumulator): impl.
4472 (marshal_BOOLEAN__POINTER): add, gack.
4474 * libspi/accessibleeventlistener.c
4475 (spi_event_listener_class_init): add signal.
4476 (impl_accessible_event_notify_event): emit the signal &
4477 make the loop efficient.
4478 (spi_event_listener_add_callback): prepend the callback.
4480 * libspi/accessibleeventlistener.h: add an 'event' signal,
4481 decl type on callback.
4483 * libspi/keystrokelistener.h: ditto.
4485 * cspi/spi-listener.h: make methods typesafe and
4486 make them use the new event typedefs.
4488 * test/simple-at.c (report_focussed_accessible):
4489 include mag_client.h
4490 Use *(void *)text_interface not the other thing.
4492 * configure.in: add gtk to registryd bits - since we use
4495 * util/magnifier.c: include libbonobo.h
4497 2001-11-25 Bill Haneman <bill.haneman@sun.com>
4499 * test/keysynth-demo.c:
4500 Turned this into a simple scanning keyboard, to demonstrate the
4501 use of g_timeout_add () as a means of creating timers for
4502 scanning, and the use of GtkStyle for visually indicating when
4503 virtual keyboard elements are selected.
4505 keysynth-demo now listens to any keyboard keys with zero-valued
4506 keycodes (i.e. 'unused' keys) and interprets them as
4509 Reworked the shiftlatch code so that shift-down state isn't held
4510 for long periods (it's only synthesized immediately prior to
4511 the keysynth event it's modifying). Note that shiftlatch in this
4512 demo is a convenience, not intended to take the place of AccessX
4513 which is the better choice for getting 'sticky' modifier keys.
4515 * libspi/deviceeventcontroller.c:
4516 * at-bridge/bridge.c:
4517 * cspi/spi_registry.c:
4518 Removed some debug print stuff, and put other verbosity in #ifdef
4523 Implemented some more of the magnifier IDL for the simple
4524 magnifier: namely, getZoomRegionParams.
4525 Added mag_x and mag_y members to MagnifierData struct, aid of this
4527 Added GtkWindow::realize signal handler to magnifier, to keep it
4528 from receiving keyboard focus from the WM.
4530 2001-11-23 Mark McLoughlin <mark@skynet.ie>
4532 * cspi/spi-private.h: my guess at what michael forgot
4533 before he ran off to NZ :-)
4535 2001-11-23 Michael Meeks <michael@ximian.com>
4537 * cspi/spi_event.c (AccessibleEventListener_removeCallback):
4538 comment out non existant method invoke so we link.
4540 * cspi/spi-util.c (spi_warn_ev): conform to gtk+ style,
4541 use bonobo_exception_get_text for more friendly warnings.
4543 * cspi/spi.c (Obj_Add): move into spi_main & rename
4544 spi_object_add; kill spi.c
4546 * cspi/spi_registry.c
4547 (deregisterGlobalEventListener),
4548 (deregisterGlobalEventListenerAll),
4549 (registerGlobalEventListener): fix exception leaks.
4551 * cspi/spi_main.c (spi_exception): impl. helper, so we
4552 don't leak exceptions.
4554 * cspi/spi_selection.c
4555 (AccessibleSelection_deselectSelectedChild): return the
4558 * cspi/spi_main.c (spi_ev): impl; hack - gack.
4559 (spi_registry): ditto.
4560 (SPI_init): guard against double inits.
4562 * cspi/*.c: use spi_ev (), and spi_registry () where
4563 appropriate - a temporary hack until we have something
4564 better. Use spi_object_add
4566 2001-11-22 Michael Meeks <michael@ximian.com>
4568 * cspi/Makefile.am: re organise, install the headers.
4570 * cspi/*.h: add G_BEGIN/END_DECLS
4572 2001-11-22 Bill Haneman <bill.haneman@sun.com>
4575 Added non-preemptive keylistener for key events with no modifiers
4576 and shift-only modifier.
4578 * libspi/keystrokelistener.c:
4579 Removed some verbose diagnostics printout.
4581 * cspi/spi_registry.c:
4582 Fixed a bug that caused all key listeners to be registered as
4585 * libspi/deviceeventcontroller.c:
4586 Fixed bug that caused XGrabKey (preemptive key grab) to be called
4587 for non-preemptive key masks.
4590 2001-11-22 Bill Haneman <bill.haneman@sun.com>
4592 * docs/reference/idl/at-spi-idl-docs.sgml:
4593 * docs/reference/idl/at-spi-idl-sections.txt:
4594 * docs/reference/idl/at-spi-idl-overrides.txt:
4595 Added missing files.
4597 * docs/reference/Makefile.am:
4598 removed idl from SUBDIRS until we can figure a way to get gtk-doc
4599 to scan the IDL files :-(
4604 Added .cvsignore files.
4606 2001-11-21 Bill Haneman <bill.haneman@sun.com>
4608 * libspi/deviceeventcontroller.c:
4609 * libspi/keystrokelistener.c:
4611 * cspi/spi_registry.c:
4612 Added filters for KeySets, KeyEventSeq, and event types to key
4613 event dispatching, so listeners should only receive those events
4614 that they requested :-)
4616 2001-11-21 Bill Haneman <bill.haneman@sun.com>
4621 * docs/reference:Makefile.am:
4622 * docs/reference/cspi:
4623 * docs/reference/cspi:Makefile.am:
4624 * docs/reference/cspi:tmpl:
4625 * docs/reference/cspi:tmpl:*.sgml:
4626 * docs/reference/idl:
4627 * docs/reference/idl:Makefile.am:
4628 * docs/reference/idl:at-spi-idl-sections.txt:
4629 * docs/reference/idl:at-spi-idl-docs.sgml:
4630 * docs/reference/idl:tmpl:
4631 * docs/reference/idl:tmpl:*.sgml:
4633 Restructured docs directory to allow separate 'reference' docs
4634 section, and forked idl and cspi docs. Added the sgml template
4635 files to CVS. Added the first sections/structural sgml for the
4638 2001-11-21 Laszlo Peter <laca@ireland.sun.com>
4640 * configure.in, libspi/Makefile.am: find libXtst.
4642 2001-11-21 Michael Meeks <michael@ximian.com>
4644 * test/accessx-gui.c: s/spi_value/value/ - doh.
4646 * libspi/base.[ch]: add.
4648 2001-11-18 Bill Haneman <bill.haneman@sun.com>
4650 * idl/Accessible.idl:
4651 * idl/Application.idl:
4654 Started gtk-doc cleanup on IDL.
4656 * libspi/deviceeventcontroller.c:
4657 Added and connected non-preemptive key notification from the
4658 toolkits (in addition to the pre-emptive support from XServer
4659 which we had before, but which causes 'focus flashing'). Filters
4660 are presently limited to key modifiers and global/non-global,
4661 KeySets are presently ignored, as are KeyEvent masks.
4663 Fixed naughtiness in dec_key_listener_new(), we copy the CORBA
4664 structs into the persistant structure rather than just storing
4665 pointers to things that might not persist across servant
4668 The XGrabKey call now does async keygrabs, because synchronous
4669 ones were deadlocking with GDK_event code in a very nasty way.
4671 Added boolean to internal method notify_keylisteners, to indicate
4672 whether the event came from the 'toolkit source' or the 'global
4673 (XServer) source' - this is used in the notification process to
4674 determine which listeners to send the event to.
4676 deviceeventcontroller.c is now warning-free.
4678 * libspi/registry.c:
4679 Fixed regression in application de-registration.
4680 Also fixed some really brain-dead weirdness having to do with
4681 event dispatching - event structs are now duplicated before being
4682 re-marshalled in the dispatch to listeners. This also fixes a
4683 Solaris build problem.
4686 2001-11-20 Michael Meeks <michael@ximian.com>
4689 (impl_accessibility_registry_deregister_global_event_listener):
4692 * libspi/deviceeventcontroller.c
4693 (spi_device_event_controller_check_key_event): return
4694 FALSE on no virtual method.
4696 * libspi/*..h: make includes work on a correctly pathed install.
4698 * libspi/*.h: include glib/gmacros.h, use G_BEGIN / END _DECLS.
4700 * libspi/application.h: kill unused ( and whacked out )
4701 gboolean *spi_application_set_id (AtkObject *app, long id);
4703 2001-11-20 Michael Meeks <michael@ximian.com>
4705 * libspi/*.[ch]: further convert to bonobo's type func
4706 macros, remove redundnant casts etc.
4708 * libspi/text.c s/accessibility_text/spi_text/g,
4709 re-order to de-cruft.
4711 * libspi/hypertext.c: re-order to kill a huge slew
4712 of redundant forward decls.
4714 * libspi/relation.c: ditto.
4716 * libspi/image.c: ditto.
4718 * */.cvsignore: update
4720 2001-11-20 Michael Meeks <michael@ximian.com>
4722 * libspi/deviceeventcontroller.c
4723 (_controller_register_with_devices): use g_getenv,
4724 kill stdlib.h include.
4726 * libspi/keystrokelistener.c
4727 (spi_keystroke_listener_get_type): kill
4728 (spi_keystroke_listener_class_init),
4729 (spi_keystroke_listener_init): rename to this.
4731 * libspi/text.c (impl_getAttributes): fix warning / bug.
4733 * libspi/*.[ch]: more headers, includes and over commenting.
4735 2001-11-20 Michael Meeks <michael@ximian.com>
4737 * libspi/*.[ch]: fixup headers, includes and over commenting.
4739 * libspi/image.c (impl__get_imageDescription): const
4740 correctness warning fix. remove redundant casting.
4742 * libspi/table.c (impl_getRowDescription): ditto.
4743 (impl_getColumnDescription): ditto.
4745 * libspi/libspi.h: add.
4747 2001-11-19 Michael Meeks <michael@ximian.com>
4749 * libspi/editabletext.c (impl_setAttributes): fix warnings.
4751 * libspi/component.c (accessibility_component_get_type):
4752 rename to (spi_component_get_type): and macroify.
4753 (accessibility_component_init): rename to
4754 (spi_component_init): this
4755 (accessibility_component_class_init): rename to
4756 (spi_component_class_init): this
4758 * libspi/action.c (spi_action_get_type): kill, use the macro.
4760 * libspi/deviceeventcontroller.c (_compare_listeners): re-order
4763 * libspi/application.c (spi_application_object_event_listener),
4764 (impl_accessibility_application_register_object_event_listener):
4765 warning fixes / const understanding updates.
4767 * libspi/accessible.c (impl_accessibility_accessible_get_relation_set):
4770 2001-11-18 Bill Haneman <bill.haneman@sun.com>
4772 * libspi/spi_accessible.c: Added docs and C bindings for
4773 AccessibleStateSet. (No implementations yet). Documentation
4774 coverage for C bindings now 100%. Made docs for event listeners
4779 boolean notifyListenersSync (in DeviceEventListener listener,
4780 in DeviceEvent event);
4782 oneway void notifyListenersAsync (in DeviceEventListener listener,
4783 in DeviceEvent event);
4785 Added DeviceEventListener and DeviceEvent structs (may deprecate
4786 KeyStroke and KeystrokeListener in favor of this generic
4787 event/listener framework for devices).
4789 * libspi/deviceeventcontroller.c:
4791 Changed some key listener code to take masks, etc., and paved the
4792 way for integration of toolkit/non-preemptive key events. Changed
4793 signatures of some internal methods.
4795 * at-bridge/bridge.c:
4796 Fixed regression connecting to interface signals, apparently
4797 caused by GTK+ changes.
4799 Added an internal bridge_state_listener to deal with
4800 property-change:accessible-state signals.
4802 Changed the key_listeners GList to store structs (including masks,
4803 etc.) instead of just CORBA_Objects (required for full
4804 implementation of key listener API).
4806 Connected the bridge to all currently supported Atk signals.
4807 Events now supported:
4808 object:property-change
4809 object:property-change:accessible-name
4810 object:property-change:accessible-state
4811 object:property-change:accessible-description
4812 object:property-change:accessible-parent
4813 object:property-change:accessible-value
4814 object:property-change:accessible-role
4815 object:property-change:accessible-table-caption
4816 object:property-change:accessible-table-column-description
4817 object:property-change:accessible-table-column-header
4818 object:property-change:accessible-table-row-description
4819 object:property-change:accessible-table-row-header
4820 object:property-change:accessible-table-summary
4821 object:children-changed
4822 object:visible-data-changed
4823 object:selection-changed
4824 object:text-selection-changed
4826 object:text-caret-moved
4828 object:row-reordered
4830 object:column-inserted
4831 object:column-reordered
4832 object:column-deleted
4833 object:model-changed
4835 2001-11-16 Bill Haneman <bill.haneman@sun.com>
4837 * libspi/hyperlink.c,h:
4838 Fixed some broken stuff in hyperlink.
4840 * libspi/relation.h:
4841 * libspi/relation.c:
4842 * cspi/spi_accessible.c:
4843 Initial implementations of AccessibleRelation methods, and docs.
4845 * libspi/accessible.c:
4846 Fixed a bug that caused SEGV if an accessible
4847 object's description is NULL, and a client
4848 requests it. An empty string is now returned.
4850 * cspi/spi_editabletext.c:
4851 * cspi/spi_hypertext.c:
4853 * cspi/spi_hyperlink.c:
4857 Doc coverage now 95%.
4859 2001-11-16 Bill Haneman <bill.haneman@sun.com>
4861 One last namespacing revision:
4862 * libspi/accessibleeventlistener.[ch]:
4863 Renamed SpiAccessibleEventListener to SpiEventListener,
4864 (no need for two namespaces ;-)
4866 And lots of documentation fixes:
4868 * docs/at-spi-docs.sgml:
4869 Fixed 'underscore vs. hyphen' bug that was preventing
4870 the gtk-doc API docs from being automatically generated.
4873 * cspi/spi-listener.h
4875 * cspi/spi_accessible.c
4877 * cspi/spi_application.c
4878 * cspi/spi_component.c
4879 * cspi/spi_editabletext.c
4881 * cspi/spi_hypertext.c
4883 * cspi/spi_registry.c
4884 * cspi/spi_selection.c
4888 * docs/at-spi-docs.sgml
4889 * docs/at-spi-sections.txt
4891 Added and fixed up gtk-doc documentation in cspi.
4893 Interfaces now (fully) documented (subject to revision and enhancement):
4895 Event Listener Support
4897 AccessibleApplication
4901 AccessibleEditableText
4908 AccessibleRelationSet
4913 2001-11-14 Bill Haneman <bill.haneman@sun.com>
4915 * at-bridge/bridge.c:
4916 Initial work for toolkit-level key snooper connection by bridge.
4921 New typedefs and fixes to support new namespacing, and cleaner
4922 separation of cspi bindings from libspi bonobo implementation.
4923 Removed inconsistent and extraneous Spi* namespace prefix that
4924 had crept into cspi headers.
4925 Lots of comment fixes that sed had missed.
4927 * cspi/spi-roletypes.h:
4928 * cspi/spi-statetypes.h:
4929 Added SPI_ prefix to Role and State typedefs, and changed all-caps ROLE type
4930 to AccessibleRoleType.
4932 * libspi/accessibleeventlistener.h:
4933 Fixed minor namespacing weirdness.
4935 * libspi/deviceeventcontroller.c:
4936 Reordered some internal API for device listeners.
4937 Changed the key registry final boolean to 'is_system_global'
4938 rather than 'is_synchronous', which is more descriptive of its
4940 Added spi_device_event_controller_new().
4941 Added SpiRegistry backpointer to SpiDeviceEventControllerClass.
4943 * libspi/keystrokelistener.[ch]:
4944 Namespaced KeystrokeListener to SpiKeystrokeListener.
4945 Changed uses of keymasks to use SPI_ prefix, and did other
4948 * libspi/keymasks.h:
4949 Namespaced keymask constants with SPI_ prefix.
4951 * libspi/registry.c:
4952 Some warning fixes, and knock-on fixes from namespace changes.
4955 Added rules for accessx-gui test program.
4957 * test/accessx-gui.c:
4958 Added a simple GUI program in GTK+-2.0 for the AccessX keyboard
4959 utility. It doesn't actually use at-spi, but it's still cool and
4962 * test/keysynth-demo.c:
4966 Fixes so that these test clients work properly with the namespaced
4967 libraries. (Incompletely tested for technical reasons, fixes may follow)
4970 2001-11-13 Michael Meeks <michael@ximian.com>
4972 * libspi/application.c
4973 (impl_accessibility_application_get_version),
4974 (impl_accessibility_application_get_toolkit_name):
4976 (impl_accessibility_application_set_id),
4977 (impl_accessibility_application_get_id): remove
4978 redundant casting code.
4980 * libspi/action.c (impl_getDescription): fix warnings.
4982 * libspi/accessible.c
4983 (impl_accessibility_accessible_get_parent),
4984 (impl_accessibility_accessible_get_child_at_index),
4985 (impl_accessibility_accessible_get_state),
4986 (impl_accessibility_accessible_get_relation_set):
4987 warning fixes & include action.h
4989 2001-11-13 Michael Meeks <michael@ximian.com>
4991 * *.[ch] fix bits I screwed up:
4993 s/([^ \tb(\*\&\?\",])spi_/\1/g;
4994 s/([^ \tb(\*\&\?\",])Spi/\1/g;
4996 2001-11-13 Michael Meeks <michael@ximian.com>
4998 * *.[ch] Namespace libspi into spi_ and Spi.
5000 2001-13-11 Michael Meeks <michael@ximian.com>
5002 * Makefile.am: dist & install at-spi-1.0.pc
5004 * libspi/Makefile.am: install into at-spi-1.0
5006 * idl/Makefile.am (idldir): install into at-spi-1.0
5008 * at-spi-1.0.pc.in: add.
5010 * configure.in: build it.
5012 2001-11-12 Bill Haneman <bill.haneman@sun.com>
5014 * test/keysynth-demo.c:
5015 Use a 'realize' signal-handler to set the WM properties for
5016 the virtual keyboard, rather than making it a "POPUP" type
5017 override-redirect window (thanks to anders carlsson for that
5020 2001-11-11 Bill Haneman <bill.haneman@sun.com>
5023 * test/keysynth-demo.c:
5024 Added new test of key synthesis, which creates a simple
5025 (mouse-operated) onscreen keyboard. It inserts key events into
5026 the currently-focused window, thus it does not grab keyboard focus
5029 * cspi/spi_registry.c:
5030 Added C binding for AT-SPI generateKeyEvent.
5032 * libspi/deviceeventcontroller.c:
5033 Added call to XFilterEvent so that key listener works with XIM (we
5034 hope). Added event_synth_type to generateKeyEvent, so that we can
5035 produce KEY_PRESS, KEY_RELEASE, KEY_PRESSRELEASE (pair), or
5036 synthesize a press/release pair for KeySyms.
5038 2001-11-09 Bill Haneman <bill.haneman@sun.com>
5040 * libspi/Makefile.am:
5041 * registryd/Makefile.am:
5042 (temporary) hack to include libXtst in libspi and registryd.
5043 (Needed for keystroke synthesis, see below).
5046 Improved API for registerKeystrokeListener, in accordance with
5047 discussions with Gnopernicus team and X server research.
5049 * libspi/registry.c:
5050 * libspi/deviceeventcontroller.c:
5051 * libspi/accessible.c:
5052 * libspi/keystrokelistener.c:
5053 Changes and fixes to support keylisteners for potentially
5054 consumed key events (that is, 'passive grabs').
5055 Added implementation for generateKeyEvent() [untested].
5058 Changes to registerKeystrokeListener() API, as above.
5059 Added deregisterGlobalEventListenerAll(), and
5060 deregisterKeystrokeListener(), which are needed for clean exit of
5062 Added typedefs for KeyListenerSyncType, KeyEventMask, and KeySet,
5063 and a macro ALL_KEYS which may be used in place of a KeySet pointer.
5065 * cspi/spi_registry.c:
5066 Added implementations of function prototypes mentioned above.
5068 * registryd/registryd.c:
5069 Added the key listener event source as a g_timeout(), to allow
5070 receipt of key events that are not caught by GDK (since GDK
5071 doesn't support passive keygrabs, this was necessary).
5074 Changed to attach a keylistener to 'Alt' keys, and
5075 respond to the following keycommands: Alt-M (toggle magnifier);
5076 Alt-F (toggle speech); Alt-Q (quit).
5077 Added an exit routine to deregister the listeners, and a key
5078 listener that prints some key info to the console when a key
5079 matches the listener mask (and is thus received by the listener).
5081 * util/idl/Magnifier.idl:
5082 Changes to magnifier API to support multiple zoom regions,
5083 non-uniform scaling in x and y, markDirty, and a host of other
5084 features that would be useful to magnification.
5087 * util/mag_client.c:
5088 * util/mag_client.h:
5089 * util/mag_control.c:
5091 Source code changes to support the above IDL changes.
5094 As above, and also changes to use a (slower) generic conversion
5095 path for colormap conversions, since the fast RGB conversions have been
5096 reported to fail for 16-bit displays.
5098 2001-10-26 Michael Meeks <michael@ximian.com>
5100 * libspi/Makefile.am (orbittypelibdir): install in orbit-2.0
5102 2001-10-26 Laszlo Peter <laca@ireland.sun.com>
5104 * at-bridge/Makefile.am: fix LDFLAGS.
5106 2001-10-09 Bill Haneman <bill.haneman@sun.com>
5108 * at-bridge/bridge.c:
5109 Re-worked listeners for toolkit events, now we have signal
5110 and property listeners. Added a private method
5111 register_atk_event_listeners(), which registers with the
5112 various atk and gtk signals we need to monitor in order to emit
5114 Added emission hook for AtkObject:property-change events, to
5115 support the 'property listeners'.
5116 Fixed some alloc()s of Accessibility_Event structs to use CORBA
5119 * cspi/spi-util.c: added methods spi_warn_ev and spi_check_ev,
5120 which emit warnings and exit, respectively, if CORBA errors occur
5121 during remote calls, and we now use these methods to check most of
5122 our CORBA calls in the C bindings.
5124 * cspi/spi_accessible.c:
5125 Changed AccessibleSelection_refSelectedChild() to
5126 AccessibleSelection_getSelectedChild(), since all our cspi 'gets'
5127 now increment refcounts.
5129 * cspi/spi_component.c:
5130 Fixed some long pointer casts (dangerous!) to pass pointers to
5131 CORBA_longs of the proper type to the CORBA stubs, and copy the
5132 data into the longs that were passed into the C bindings code.
5134 * at-bridge/bridge.c:
5136 * libspi/accessible.c:
5137 Removed ATK_IS_HYPERLINK() query, since AtkObjects are never
5138 hyperlinks, AtkHyperlink is an object type.
5140 * libspi/application.c:
5141 Added various conversions to and from "generic" event types and
5142 atk-specific types; this is really part of the 'bridge'
5143 implementation but is valid for all AtkObject-based accessibility
5146 * libspi/editabletext.c:
5147 Fixed nasty bug wherein editable text's finalize method was
5148 unref'ing tha AtkObject reference that the text parent class was
5149 about to unref _again_. There was also a nasty inheritance bug
5150 that meant that the AccessibleEditableText class was corrupt.
5152 * libspi/selection.c:
5153 Provided implementations for some selection API that was broken.
5155 * idl/Application.idl:
5156 Added registerObjectEventListener () method.
5159 Fixed a number of return values that were Bonobo_Unknowns from
5160 bonobo_object_corba_objref(), which I
5161 forgot to dup before returning. Changed instances of
5162 bonobo_object_corba_objref (bonobo_object(o)) to
5163 BONOBO_OBJREF(o), for concision and clarity.
5165 2001-10-13 Louise Miller <louise.miller@sun.com>
5167 * idl/Accessible.idl, idl/Application.idl, idl/Desktop.idl,
5168 idl/Event.idl, idl/Registry.idl
5169 Changed these files to include Bonobo_Unknown.idl instead
5172 2001-09-10 Marc Mulcahy <marc.mulcahy@sun.com
5174 * libspi/component.c libspi/component.h:
5175 Fixed typo. Added assertions for object checks in
5176 AccessibleComponent code.
5178 2001-10-09 Bill Haneman <bill.haneman@sun.com>
5180 * idl/Accessible.idl:
5181 Added 'isEqual (Accessible *object)'
5182 method for Accessible. (Not Yet Implemented).
5185 Changed signature of registerKeystrokeListener() to
5186 take a KeySet and KeyEventSeq so that specific keys and event
5187 types could be requested for monitoring, and added a flag
5188 is_synchronous so that either synchronous or asynchronous
5189 notification could be requested. (However this is not all
5190 implemented yet). This also meant adding two new typedefs,
5191 KeyEventSeq and KeySet.
5194 Added two new relations, RELATION_TOOLTIP_FOR and
5195 RELATION_LEAFNODE_OF.
5198 Added new state, STATE_HAS_TOOLTIP.
5200 * libspi/text.c, editabletext.c:
5201 Added new assertions to all casts of bonobo-objects from
5202 CORBA servants, to prevent Text API calls on non-text objects.
5203 Changed suspect casts of int-pointer types, so that we
5204 always send a valid CORBA_long pointer to the CORBA APIs that use
5205 in/out long parameters. We then have to copy from the CORBA_long
5206 into the regular long or int for return to the C bindings, or
5207 vice-versa when returning parameters from ATK calls to the bonobo wrappers.
5210 * libspi/deviceeventcontroller.c:
5211 Cleaned these sources up.
5213 Changed return type for getCharacterAtOffset to
5214 CORBA_unsigned_long, to allow for 32-bit characters.
5217 2001-10-08 Bill Haneman <bill.haneman@sun.com>
5221 Fixed 'make dist' so that distro compiles...
5222 * libspi/keymasks.h:
5224 * cspi/spi-listener.c:
5225 KeystrokeListenerCB now returns a boolean.
5227 Added KeyEventType struct, and KeyStroke.
5228 Also added createKeystrokeListener(),
5229 KeystrokeListener_addCallback(),
5230 KeystrokeListener_removeCallback(), and added a keymask to
5231 registerKeystrokeListener().
5232 * cspi/spi_accessible.c:
5233 Changed numerous return types for interfaces from
5234 AccessibleComponent to Accessible<InterfaceName>; this was
5235 probably a cut-and-paste error.
5237 Implementations of new KeystrokeListener api (from spi.h,
5240 Changes to key modifier mapping.
5241 Created ControllerEventMask struct.
5242 Made DeviceEventController derive from Bonobo::Unknown.
5244 Removed TEXT_BOUNDARY_CURSOR_POS boundary type.
5245 * libspi/deviceeventcontroller.c:
5246 Added a number of new internal (private) methods.
5247 * libspi/editabletext.c:
5248 * libspi/editabletext.h:
5249 Fixed a number of bugs related to the fact that
5250 editabletext inherits from text. Fixed the EditableText struct,
5251 the init() call, and use correct casts when calling Text methods
5252 from an EditableText object. Removed (duplicate) atko from the
5253 EditableText structure, we use the one in the parent Text
5254 structure via the casts mentioned above.
5255 * libspi/keystrokelistener.[ch]:
5256 * libspi/registry.c:
5257 Changes in support of keyboard handling (above).
5259 Keyboard handling, though partly functional, is still not
5260 recommended for at-spi client use as there is considerable
5261 work yet to be done.
5264 Changed some places where pointers to various int types
5265 are cast to be pointers to CORBA_long types and vice-versa:
5266 pointer casting is not safe so we pass pointers of the correct
5267 types and then cast the result before putting it into the target
5270 * libspi/text.h: minor typos corrected.
5272 We now speak not only the name of a Text element, but the
5273 first sentence of its content, when it receives focus.
5274 I also changed the text compression to 75% from 50%.
5275 * util/Accessibility_Util.server.in:
5276 Changed the default magnifier type to be a 3x vertical
5277 splitscreen magnifier (was previously a 2x horizontal one).
5279 2001-10-03 Bill Haneman <bill.haneman@sun.com>
5281 * libspi/keystrokelistener.h:
5282 * libspi/keystrokelistener.c:
5283 Initial functional implementations of KeystrokeListener.
5286 2001-10-05 Marc Mulcahy <marc.mulcahy@sun.com>
5288 Fixed string handling for NULL strings in libspi.
5289 Added spi_freeString to free strings returned by C bindings.
5291 2001-09-30 Bill Haneman <bill.haneman@sun.com>
5293 * libspi/keystrokelistener.h:
5294 * libspi/keystrokelistener.c:
5295 Began (no-op) implementations of KeystrokeListener
5297 * libspi/deviceeventcontroller.c:
5298 * libspi/deviceeventcontroller.h:
5299 Began creating implementations of DeviceEventController,
5300 to handle keystroke and mouse event listening and
5302 * libspi/accessible.c:
5303 Stubbed-in the implementations for
5304 Accessibility_Accessible_getState and
5305 Accessibility_Accessible_getRelationSet.
5306 * libspi/registry.c:
5307 Improved de-registration process and fixed some bugs,
5308 deregistration now works correctly.
5310 Added initialization of applications list (to NULL).
5312 Reduced speech compression from 0.5 to 0.7, for demo.
5313 Changed call to gdk_window_set_decorations()
5314 to gtk_window_set_decorated().
5315 * at-bridge/bridge.c:
5316 Bridge now deregisters when app exits, via
5317 registration of a cleanup function
5318 with the g_atexit() call.
5319 Required making 'app' static, renamed 'this_app'.
5320 Fixed broken use of bonobo_init, passing argv wrongly.
5322 2001-09-27 Bill Haneman <bill.haneman@sun.com>
5326 Created a new directory for
5327 accessibility-related utilities, primarily for
5328 testing and demo purposes, but with possible
5335 Onscreen magnifier utility that
5336 is implemented as a bonobo service.
5338 * util/mag_client.c:
5339 * util/mag_client.h:
5340 Client-side support (simple C bindings)
5341 for Magnification service
5343 * util/mag_control.c:
5344 Client program example for
5345 Magnification service
5347 * util/Accessibility_Magnifier.server.in:
5348 Bonobo-activation file for the
5349 Magnification service.
5352 * util/idl/Magnifier.idl:
5353 IDL defining the bonobo Magnification
5357 Modifications to use the bonobo-activated magnifier
5358 above, in place of trying to connect to an existing
5359 magnifier that uses socket-listening IPC.
5361 If env variable MAGNIFIER is set, a magnifier service
5362 will be started if one does not exist.
5364 2001-09-25 Bill Haneman <bill.haneman@sun.com>
5366 * at-bridge/bridge.c:
5367 applied patch from Marc to build and run
5368 against new glib and gtk+ (seemed like a change
5369 to bonobo_init signature was made ?)
5371 made festival-server support turned off by default.
5372 Added support for a simple magnifier (off by default)
5373 which will be added to a 'util' directory later.
5374 * at-bridge/Makefile.am:
5375 Changed "application.h" header from a 'source'
5376 to a 'dependency' of libat-bridge.
5378 2001-09-12 Marc Mulcahy <marc.mulcahy@sun.com>
5387 Added interface implementation c files to list of
5388 includes so they are included in libcspi.
5391 Changed prototype of AccessibleAction_doAction to return a
5393 Changed prototype of AccessibleTable_getCaption to
5394 return an Accessible.
5395 Changed prototype of AccessibleTable_getSelectedRows
5396 and AccessibleTable_getSelectedColumns to
5397 return a long (returns the number of selected rows
5398 or columns respectively).
5399 Changed name of AccessibleText_refRunAttributes to
5400 AccessibleText_getAttributes.
5401 Changed prototype of AccessibleText_getCharacterExtents to
5402 return a void rather than a boolean.
5403 Added support for a AccessibleCoordType parameter
5404 specifying what type of coordinates are desired.
5405 Added an AccessibleCordType parameter to
5406 AccessibleText_getPointAtOffset.
5408 * cspi/spi_accessible.c:
5409 Added code to return the outstanding interfaces from
5410 Accessible_queryInterface.
5412 * cspi/spi_action.c:
5414 Corrected call to getNActions to call the c binding
5417 * cspi/spi_editabletext.c:
5419 Changed name from setRunAttributes to setAttributes.
5421 * cspi/spi_hyperlink.c:
5423 Changed call to getNAnchors to correctly call the c
5424 binding for an attribute.
5426 * cspi/spi_hypertext.c:
5428 Changed getImageDescription to correctly call the
5429 binding for an attribute.
5431 * cspi/spi_selection.c:
5432 Changed getNSelectedChildren to correctly call the c
5433 binding for the attribute.
5434 Changed refSelectedChild to getSelectedChild.
5438 Changed getCaption to return an Accessible.
5439 Fixed calls which retrieve attributes.
5440 Changed refAt to getAccessibleAt.
5441 Changed getNSelectedRows and getNSelectedColumns to
5445 Changed getCharacterExtents and getPointAtOffset to accept an
5446 AccessibleCoordType.
5448 Changed calls which retrieve attributes.
5449 Changed refRunAttributes to getAttributes.
5454 * idl/Hyperlink.idl:
5455 Changed n_anchors attribute to nAnchors to keep naming
5456 convention consistent.
5459 Made Table inherit from Bonobo::Unknown.
5460 Added nSelectedColumns and nSelectedRows attributes.
5463 Made Value inherit from Bonobo::Unknown.
5465 * libspi/hyperlink.c:
5466 Change for nAnchors attributte name change.
5468 2001-09-12 Marc Mulcahy <marc.mulcahy@sun.com>
5476 Added interface implementation c files to list of
5477 includes so they are included in libcspi.
5480 Changed prototype of AccessibleAction_doAction to return a
5482 Changed prototype of AccessibleTable_getCaption to
5483 return an Accessible.
5484 Changed prototype of AccessibleTable_getSelectedRows
5485 and AccessibleTable_getSelectedColumns to
5486 return a long (returns the number of selected rows
5487 or columns respectively).
5488 Changed name of AccessibleText_refRunAttributes to
5489 AccessibleText_getAttributes.
5490 Changed prototype of AccessibleText_getCharacterExtents to
5491 return a void rather than a boolean.
5492 Added support for a AccessibleCoordType parameter
5493 specifying what type of coordinates are desired.
5494 Added an AccessibleCordType parameter to
5495 AccessibleText_getPointAtOffset.
5497 * cspi/spi_accessible.c:
5498 Added code to return the outstanding interfaces from
5499 Accessible_queryInterface.
5501 * cspi/spi_action.c:
5503 Corrected call to getNActions to call the c binding
5506 * cspi/spi_editabletext.c:
5508 Changed name from setRunAttributes to setAttributes.
5510 * cspi/spi_hyperlink.c:
5512 Changed call to getNAnchors to correctly call the c
5513 binding for an attribute.
5515 * cspi/spi_hypertext.c:
5517 Changed getImageDescription to correctly call the
5518 binding for an attribute.
5520 * cspi/spi_selection.c:
5521 Changed getNSelectedChildren to correctly call the c
5522 binding for the attribute.
5523 Changed refSelectedChild to getSelectedChild.
5527 Changed getCaption to return an Accessible.
5528 Fixed calls which retrieve attributes.
5529 Changed refAt to getAccessibleAt.
5530 Changed getNSelectedRows and getNSelectedColumns to
5534 Changed getCharacterExtents and getPointAtOffset to accept an
5535 AccessibleCoordType.
5537 Changed calls which retrieve attributes.
5538 Changed refRunAttributes to getAttributes.
5543 * idl/Hyperlink.idl:
5544 Changed n_anchors attribute to nAnchors to keep naming
5545 convention consistent.
5548 Made Table inherit from Bonobo::Unknown.
5549 Added nSelectedColumns and nSelectedRows attributes.
5552 Made Value inherit from Bonobo::Unknown.
5554 * libspi/hyperlink.c:
5555 Change for nAnchors attributte name change.
5558 2001-09-05 Marc Mulcahy <marc.mulcahy@sun.com>
5560 implementations-- made server implementations own AtkObject pointers
5561 rather than their respective AtkInterrface pointers to fix
5562 refcounting. AtkHyperlink is still broken.
5564 2001-09-04 Bill Haneman <bill.haneman@sun.com>
5565 * cspi/spi_accessible.c:
5566 Added method Accessible_Role_getName(),
5567 and requisite string array (role_names).
5568 Added conversion string_from_corba_strin() call
5569 to Accessible_getName and _getDescription.
5570 * libspi/accessible.c:
5571 Added implementation for Accessible_getRole()
5573 Added festival support, used if environment variable
5576 2001-09-04 Bill Haneman <bill.haneman@sun.com>
5578 * at-bridge/bridge.c:
5579 Now allocate Accessibility_Event using
5580 Accessibility_Event__alloc() instead of g_new0().
5581 * libspi/accessibleeventlistener.c:
5582 Initialize AccessibleEventListener->callbacks to NULL.
5583 Fixed accessible__event_listener_init() param, changed to
5584 "AccessibleEventListener *" type.
5585 Changed a bonobo_object_release_unref() call to
5586 Accessibility_Accessible_unref().
5587 * libspi/listener.c:
5588 Changed Bonobo_Unknown_unref to (equivalent)
5589 Accessibility_Accessible_unref.
5590 * libspi/registry.c:
5591 Changed bonobo_object_release_unref to
5592 Accessibility_Accessible_unref.
5594 2001-09-04 Marc Mulcahy <marc.mulcahy@sun.com>
5597 spi_action.c spi_editabletext.c spi_hyperlink.c spi_hypertext.c
5598 spi_image.c spi_selection.c spi_table.c spi_text.c spi_value.c
5599 spi-util.c spi-util.h
5600 Implementations for C bindings to remaining accessibility
5603 2001-09-04 Marc Mulcahy <marc.mulcahy@sun.com>
5606 changed return value of Action from void to boolean to
5607 bring in line with ATK.
5610 Changed getText funcions to return "out" start and end offsets.
5611 Changed getAttributes to take and offset and return the start
5612 and end offset of the attribute run.
5613 Changed getOffsetAtPoint and getCharacterExtents to take an
5614 enum describing whether coordinates are window or screen.
5617 libspi/action.c libspi/action.h libspi/editabletext.c
5618 libspi/editabletext.h libspi/hyperlink.c libspi/hyperlink.h
5619 libspi/hypertext.c libspi/hypertext.h libspi/image.c
5620 libspi/image.h libspi/selection.c libspi/selection.h
5621 libspi/table.c libspi/table.h libspi/text.c libspi/text.h
5622 libspi/value.c libspi/value.h
5623 Added server implementations for outstanding ATK interfaces
5624 not yet implemented.
5626 2001-09-04 Bill Haneman <bill.haneman@sun.com>
5629 Added (missing) getName() method.
5630 Made nActions an attribute.
5631 * idl/EditableText.idl:
5632 Changed order of params in setAttributes.
5633 * idl/Hyperlink.idl:
5634 Removed getAnchor, added getURI.
5636 Changed attributes to methods, for efficiency
5637 (so that getting extents can be done in one call)
5638 * idl/Selection.idl:
5639 Changed nSelectedChildren to attribute, and re-indented.
5640 * idl/Table.idl: changed nrows, ncolumns, caption, summary
5642 * idl/Text.idl: reformatted to match our coding style.
5643 (temporarily?) removed getRowColumnAtOffset().
5644 Changed text selection API to support multi-select and
5645 non-contiguous selections, as in ATK.
5646 * idl/Value.idl: changed some methods to attributes.
5648 2001-08-24 Mark McLoughlin <mark@skynet.ie>
5650 * libspi/listener.c(impl_notify_event):
5651 BonoboUnkown_unref the source instead
5652 of bonobo_object_release_unref - the ORB
5653 handles the releasing.
5655 * configure.in: require ORBit-2.3.94 for
5658 2001-08-21 Bill Haneman <bill.haneman@sun.com>
5660 Tagged CVS repository 'EA_1_0'.
5661 * README.EARLY_ACCESS:
5662 Alphabetized acknowledgements list, and
5664 Listed some known dependencies of at-spi.
5666 2001-08-20 Bill Haneman <bill.haneman@sun.com>
5668 * docs/at-spi-docs.sgml:
5669 * docs/at-spi-sections.txt:
5670 * docs/at-spi-overrides.txt: (Added zero-length file)
5671 Documentation improvements - gtk-doc should build
5672 docs for all implemented C bindings now.
5675 * cspi/spi.c: (New file)
5676 * cspi/spi_event.c: (New file)
5677 * cspi/spi_registry.c: (New file)
5678 * cspi/spi_accessible.c: (New file)
5679 * cspi/spi_application.c: (New file)
5680 * cspi/spi_component.c: (New file)
5681 Split spi_main.c into six parts, and included them from
5682 "spi.c". This is a bit of a hack, probably temporary,
5683 but required by gtk-doc, apparently.
5685 2001-08-20 Bill Haneman <bill.haneman@sun.com>
5688 * docs/at-spi-docs.sgml:
5689 * docs/at-spi-sections.txt:
5691 Initial checkins/modifications for gtk-doc generation.
5694 Added (missing) interface query methods to Accessible's C binding.
5696 Added GenericInterface type definition.
5698 Added query for AccessibleComponent interface to focus event handler.
5699 Added printout of bounding box for focussed component.
5700 * libspi/component.c:
5701 Added partial implementation for AccessibleComponent to C binding.
5702 * idl/Application.idl:
5703 * libspi/registry.c:
5704 * libspi/listener.c:
5705 * libspi/application.c:
5706 * libspi/application.h:
5707 Changed "ID" attribute type from string to long.
5709 2001-08-19 Bill Haneman <bill.haneman@sun.com>
5713 Made method naming consistent: methods taking object args
5714 start with uppercase, other methods (except those using
5715 acronyms) start with lowercase. Underscores delimit between
5716 object names and method names:
5717 SPI_init() - uppercase since it starts with an acronym.
5718 getDesktopCount () - lowercase start since no object param0.
5719 Accessible_getName() - uppercase object type name, studlyCaps method
5723 Added gtk-doc documentation for all currently implemented
5724 methods in the C bindings API.
5726 2001-08-18 Bill Haneman <bill.haneman@sun.com>
5728 * Makefile.am : changed build order to build test last.
5731 Changed "createEventListener" to "CreateEventListener".
5732 * libspi/accessibleeventlistener.c :
5733 Bugfix for addition of callbacks.
5734 * test/Makefile.am :
5735 * test/simple-at.c :
5736 Added new test that uses the C bindings API.
5738 * libspi/listener.c :
5739 * libspi/registry.c :
5740 * libspi/accessibleeventlistener.c :
5741 * at-bridge/bridge.c :
5742 Renamed member "target" of Accessibility_Event to "source",
5743 which is more descriptive.
5746 2001-08-18 Bill Haneman <bill.haneman@sun.com>
5750 * cspi/Makefile.am :
5751 Added makefile support for at-spi/cspi directory.
5754 * cspi/spi-listener.h : (NEW FILE)
5755 Added support for/use of spi-listener.h.
5757 C bindings now build successfully, with no warnings.
5758 * libspi/accessibleeventlistener.h : (NEW FILE)
5759 * libspi/accessibleeventlistener.c : (NEW FILE)
5760 * libspi/Makefile.am :
5761 Added new object type "AccessibleEventListener"
5762 which inherits from Listener, and allows attachment
5763 of in-process callbacks (so that a client with a listening
5764 object instance can add functionality to the local
5765 implementation, dynamically).
5767 2001-08-18 Bill Haneman <bill.haneman@sun.com>
5769 * libspi/accessible.c:
5770 Add implementation for get_index_in_parent().
5772 Added #include of "spi-roletypes.h", and
5773 added enumerated type AccessibleCoordType.
5774 Added definition for KeystrokeListener (function type).
5777 * cspi/spi-statetypes.h :
5778 * cspi/spi-roletypes.h :
5780 Added these headers, used by spi.h.
5782 Added code (NOTE: not yet built by make).
5784 2001-08-18 Mark McLoughlin <mark@skynet.ie>
5786 * libspi/Makefile.am: generate imodule
5787 at the same time as other idl compiler
5790 2001-08-17 Bill Haneman <bill.haneman@sun.com>
5791 * libspi/registry.c :
5792 * libspi/application.c :
5793 * idl/Application.idl :
5794 Made registration with toolkit an application method,
5795 which is required since each app has its own toolkit static
5796 environment. Thus the bridge must register for
5797 notification of toolkit events from each application in turn.
5798 Toolkit notifications are now successfully registered for, and
5799 sent to the listening at client.
5801 Changed toolkit event string to use hyphens rather than underscores.
5802 * libspi/listener.c :
5803 listner now gives more info in debug mode - it reports the
5804 name of the event received, as well as the name of the source.
5807 2001-08-16 Bill Haneman <bill.haneman@sun.com>
5809 * libspi/registry.c :
5810 added more implementation for toolkit events.
5811 Fixed bug such that toolkit event registrations
5812 (via atk) use the whole event name string, not
5814 Removed a useless call to an ORBit_ method.
5815 * at-bridge/bridge.c :
5816 Removed unused local sbuf[] variable.
5818 We now register for Gtk:GtkWidget:button_press_event
5819 events as well as "focus:" events.
5821 Add some more API from Registry.idl that was missing,
5822 for keystroke listening, keystroke and mouse event
5823 synthesis, and enumeration of accessible desktops.
5825 2001-08-16 Michael Meeks <michael@ximian.com>
5827 * configure.in: use AM_GLIB_GNU_GETTEXT.
5829 * Makefile.am (SUBDIRS): kill intl.
5831 2001-08-15 Michael Meeks <michael@ximian.com>
5833 * registryd/Makefile.am: s/oaf/server/ relocate info file.
5835 * configure.in: upd.
5837 * configure.in: depend on a recent bonobo-activation that
5838 will find our server files ...
5840 2001-08-16 Bill Haneman <bill.haneman@sun.com>
5842 * libspi/accessible.c : accessible_new() :
5843 Now we add the Component interface via bonobo_object_add_interface,
5844 if the contained AtkObject implements AtkComponent.
5845 * libspi/accessible.h : now include "component.h"
5846 * libspi/component.h :
5847 * libspi/component.c : added files - implementation of
5848 bonobo wrapper object for Accessibility/Component
5849 * libspi/listener.c :
5850 Added test code to check for Accessibility/Component:1.0
5851 interface and report whether it is implemented by the
5853 * libspi/registry.c :
5854 Now we check for not only the hash of the whole event
5855 string before relaying the event, we also check the
5856 "minor" event string (without the detail string).
5857 This allows event listeners to be registered against
5858 all events of a certain major+minor type, or just
5859 against a specific major+minor+detail type.
5860 * libspi/accessible.c :
5861 Added implementations for Accessible:get_parent(),
5862 Accessible:getChildCount(), and Accessible:getChildAtIndex().
5863 * libspi/registry.c :
5864 * libspi/listener.c :
5865 Replaced calls to Accessibility_Accessible_ref() and
5866 Accessibility_Accessible_unref() with
5867 calls to bonobo_object_dup_ref() and
5868 bonobo_object_release_unref(), so that the CORBA object
5869 is dup-ed and released when relayed, as well as the bonobo object.
5871 2001-08-15 Mark McLoughlin <mark@skynet.ie>
5873 * libspi/Makefile.am,
5874 registryd/Makefile.am,
5875 at-bridge/Makefile.am.
5876 test/Makefile.am, configure.in:
5877 reverse previous changes.
5879 * /idl/Image.idl: fix typo.
5881 * test/Makefile.am: put DEBUG_FLAGS
5884 2001-08-15 Mark McLoughlin <mark@skynet.ie>
5886 * test/app.c: use argv[0] instead of
5889 2001-08-15 Mark McLoughlin <mark@skynet.ie>
5891 * libspi/Makefile.am,
5892 registryd/Makefile.am,
5893 at-bridge/Makefile.am.
5894 test/Makefile.am, configure.in:
5895 cleanup, replace individual LIBS/CFLAGS with
5896 AT_COMMON_{LIBS|CFLAGS}.
5900 2001-08-15 Mark McLoughlin <mark@skynet.ie>
5902 * configure.in, libspi/Makefile.am:
5903 Change IDL path checking for bonobo-activation
5906 2001-08-15 Bill Haneman <bill.haneman@sun.com>
5908 * registryd/registry.c : separated event listeners to use
5909 3 separate lists (focus, window, toolkit). Began testing
5910 event names against hashes before relaying events.
5911 * test/at.c : now register for events of type "focus:"
5912 * test/app.c : now generate events of type "focus:"
5913 * at-bridge/bridge.c : register with ATK for focus events,
5914 and we now relay those focus events to any "focus:" listeners.
5915 This now works with the bridge as a GTK_MODULE when running test/at.
5916 * libspi/registry.c :
5917 * libspi/listener.c :
5918 now we ref event sources before propagating, and unref on receipt.
5919 * libspi/registry.c :
5920 some changes to internal structs, to support event typestring hashes.
5921 * text/app.c : changed the way the appname is generated.
5922 * cspi : added directory that will hold the C bindings library for
5923 non-CORBA/bonobo-savvy clients.
5924 * cspi/spi.h : header file that contains the function prototypes for the C binding.
5925 * idl/Component.idl : added in parameter to indicate coord system for
5926 geometry-related calls.
5927 * idl/Hyperlink.idl : added readonly n_links attribute
5928 * idl/Image.idl : changed methods to attributes.
5930 2001-08-15 Mark McLoughlin <mark@skynet.ie>
5932 * at-bridge/Makefile.am: link against
5933 ../libspi/libspi.la instead of -lspi.
5935 * at-spi/test/app.c: include
5936 bonobo-activation.h. Use a default appname
5937 if one is not provided.
5939 2001-08-14 Bill Haneman <bill.haneman@sun.com>
5941 * idl/Registry.idl : temporarily changed register_Application
5942 to oneway, to work around issue with initial registration
5944 * idl/Application.idl : changed attribute "id" from readonly
5945 to read-write, since it needs to be assigned by Registry.
5946 * registryd/registryd.c : added call to set application id
5948 * registryd/registry.c : changed de-registration procedure to
5949 use CORBA_Object_hash() to find matching object ref in application
5950 lists and listener lists.
5951 * registryd/registry.c : defined EventTypeStruct and EventTypeMajor,
5952 began distinguishing between event types (work in progress).
5954 2001-08-13 Bill Haneman <bill.haneman@sun.com>
5957 * libspi/application.c:
5958 Added implementations for get/set id, get_toolkitName,
5960 * registryd/registryd.c :
5964 Converted from use of OAF to bonobo-activation.
5965 * libspi/desktop.h :
5966 * libspi/desktop.c :
5968 Removed references to atksimpleobject, since base atkobject
5969 implementation now provides functionality we need.
5970 * libspi/atksimpleobject.c :
5971 * libspi/atksimpleobject.h :
5976 * at-bridge/Makefile.am
5977 * at-bridge/bridge.c
5980 Added directory "bridge" and contents, and added dependencies
5981 in Makefile.am/configure.in.
5982 Initial checkin of "at-bridge".
5983 This code is a GTK_MODULE which automatically registers
5984 GTK+ apps with the accessibility registry, using an object
5985 reference to the root ATK object.
5987 2001-08-10 Mark McLoughlin <mark@skynet.ie>
5989 * po/Makefile.in.in: Remove. Again. If this
5990 doesn't get autogenerated - you need to update
5993 2001-08-07 Mark McLoughlin <mark@skynet.ie>
5995 * po/Makefile.in.in: Add. Again.
5997 2001-07-31 Bill Haneman <bill.haneman@sun.com>
5999 * libspi/accessible.c : added support for 'description' property.
6000 * libspi/accessible.c
6002 * libspi/registry.c : changed to use bonobo_object instead of bonobo_x_object
6003 (since the two are now equivalent in libbonobo)
6011 * idl/Value.idl : changed these 'secondary' interfaces to inherit from
6012 Bonobo::Unknown as does Accessibility::Accessible.
6013 * idl/StreamableContent.idl : as above, and replaced internal InputStream
6014 interface with Bonobo::Stream, since it was redundant with it.
6015 (The Stream returned by a StreamableContext object is expected to
6016 implement only a subset of Bonobo::Stream)
6018 2001-07-28 Anders Carlsson <andersca@gnome.org>
6020 * libspi/accessible.c (accessible_object_finalize): Change
6021 g_free to g_object_unref since the AtkObject is a GObject.
6023 2001-07-30 Bill Haneman <bill.haneman@sun.com>
6025 * idl/Accessibility.idl: add new IDL files
6028 * idl/Action.idl: Definitions of actionable UI object
6029 * idl/Component.idl: Definitions of UI component geometry, etc.
6030 * idl/Hyperlink.idl: Defs of hyperlink behavior
6031 * idl/Image.idl: Def of accessible image
6032 * idl/Selection.idl: Definition of UI object with selectable children
6033 * idl/StreamableContent.idl: Definition of UI object with streamable backing data
6034 * idl/Table.idl: Definitions for access to table ('spreadsheet') elements
6035 * idl/Text.idl: Interface defs for UI elements with complex textual content
6036 * idl/Value.idl: Definition of UI element that is a value controller or display
6038 2001-07-27 Michael Meeks <michael@ximian.com>
6040 * po/Makefile.in.in: remove autogenerated file from CVS.
6042 * libspi/Makefile.am: Radicaly re-vamp to simplify & add ORBit2
6045 * idl/Registry.idl: include guard.
6047 * idl/Accessibility.idl: Add, and include all the other IDL
6050 * idl/*.idl: remove mass of pragmas etc.
6052 2001-07-26 Michael Meeks <michael@ximian.com>
6054 * registryd/Makefile.am (registryd_SOURCES): remove
6057 2001-07-27 Mark McLoughlin <mark@skynet.ie>
6059 * libspi/.cvsignore, registryd/.cvsignore,
6060 test/.cvsignore: updated.
6062 * po/Makefile.in.in: gettext update.
6064 2001-07-25 Bill Haneman <bill.haneman@sun.com>
6066 * initial CVS checkin
6068 2001-06-29 Michael Meeks <michael@ximian.com>
6070 * configure.in: add AM_CONFIG_HEADER to gen config.h