1 2003-05-20 Padraig O'Briain <padraig.obriain@sun.com>
3 * cspi/spi-statetypes.h, cspi/docs/tmpl/spi_stateset.sgml:
4 Add SPI_STATE_INDETERMINATE.
6 * cspi/spi_accessible.c (spi_state_to_corba): Add support for
9 * idl/Accessibility_State.idl: Add support for STATE_INDETERMINATE.
11 * libspi/stateset.c (init_state_type_tables): Add support for
14 2003-05-19 Padraig O'Briain <padraig.obriain@sun.com>
16 * configure: Update versions of atk and gail required.
17 This fixes bug #113268.
19 2003-05-02 Bill Haneman <bill.haneman@sun.com>
21 * configure.in: Revved micro version to 1.3.1 (because of build fix).
23 2003-05-02 Frederic Crozat <fcrozat@mandrakesoft.com>
26 Ensure headers are generated before being used by c sources.
28 2003-05-01 Bill Haneman <bill.haneman@sun.com>
31 Simplified lt versioning rules.
32 Incremented version to 1.3.0, to indicate that we're on the
35 2003-04-29 Padraig O'Briain <padraig.obriain@sun.com>
37 * docs/reference/cspi/Makefile.am, docs/reference/idl/Makefile.am:
38 Add MKDB_OPTIONS=--outtput-format=xml
40 * docs/reference/cspi/at-spi-cspi-docs.sgml
41 docs/reference/idl/at-spi-idl-docs.sgml:
42 Convert to Docbook XML.
44 This fixes bug #111793.
46 2003-04-25 Padraig O'Briain <padraig.obriain@sun.com>
48 * cspi/spi-listener.h: Add documentation for AccessibleDeviceEventType,
49 AcccessibleKeyEventType, AccessibleKeyMaskType.
51 * cspi/spi-roletypes.h: Update documentation for AccessibleRole.
53 * cspi/state-types.h: Add documentation for AccessibleState.
55 * cspi/spi.h: Add documentation for AccessibleTextBoundaryType,
56 AccessibleTextClipType, AccessibleRelationType, AccessibleCoordType,
57 AccessibleKeySynthType, AccessibleKeyListenerSyncType,
58 AccessibleComponentLayer.
60 * cspi/spi_event.c, cspi/spi_registry.c, cspi/spi_text.c: Fix bugs
63 * docs/reference/cspi/at-spi-cspi-sections.txt: Add undefined symbols.
65 * docs/reference/cspi/tmpl/spi_registry.sgml: Add description of
66 Accessible. Add description of AccessibleEvent,
67 AccessibleEventListenerCB.
69 * docs/reference/cspi/tmpl/spi_event.sgml: Update with extra
72 * docs/reference/cspi/tmpl/spi_registry.sgml: Update with extra
73 documentation. Add description of AccessibleKeystrokeListenerCB,
74 AccessibleKeyEventMask, AccessibleModifierMaskType,
75 AccessibleKeyMaskType, AccessibleKeystroke, AccessibleDeviceEvent,
76 AccessibleDeviceEventMask, AccessibleDeviceListenerCB.
78 * docs/reference/cspi/tmpl/spi_stateset.sgml: Add description of
81 * docs/reference/cspi/tmpl/spi_text.sgml: Update with extra
84 This fixes bug #104730.
86 2003-04-24 Padraig O'Briain <padraig.obriain@sun.com>
88 * atk-bridge/bridge.c (spi_init_keystroke_from_atk_key_event):
89 Set is_text field of Accessibility_DeviceEvent data structure.
91 * cspi/bonobo/cspi-bonobo-listener.c (cspi_device_event): Set
92 is-text field of AccessibleDeviceEvent data structure.
94 This addresses part of bug #108666.
96 * registryd/devcieeventcontroller.c: Unset debug option.
98 2003-04-14 Padraig O'Briain <padraig.obriain@sun.com>
101 (cpi_initial_relation_type_table): New function which initializes
102 mapping between Accessibility_RelationType and AccessibleRelationType.
103 (cspi_relation_type_from_spi_relation_type): New function which
104 translates an Accessibility_RelationType into an AccessibleRelationType.
105 (AccessibleRelation_getRelationType): Use
106 cpi_relation_type_get_spi_relation_type to return correct value.
107 (spi_state_to_corba): Return correct type for default case.
109 * cspi/spi_registry.c (SPI_registerAccessibleKeyStrokeListener):
110 Use Accessibility_EventType instead of Accessibility_KeyEventType.
112 * cspi/cspi-bonobo-listener.c:
113 Remove semicolon after BONOBO_TYPE_FUNC. Add casts to avoid compiler
116 * libspi/accessible.c, libspi/action.c, libspi/application.c,
117 libspi/base.c, libspi/component.c, libspi.devicelistener.c,
118 libspi/editabletable.c, libspi/hyperlink.c, libspi/hypertext.c,
119 libspi/image.c, libspi/listener.c, libspi/selection.c,
120 libspi/stateset.c, libspi/table, libspi/text.c, libspi/value.c,
121 registryd/desktop.c, registryd/registry.c:
122 Remove semicolon after BONOBO_TYPE_FUNC_FULL.
124 * libspi/eventlistener.c
125 Remove semicolon after BONOBO_TYPE_FUNC.
128 Remove semicolon after BONOBO_TYPE_FUNC_FULL.
129 (spi_init_relation_type_table): Initialize using correct type.
131 * registryd/desktop.c:
132 Remove semicolon after BONOBO_TYPE_FUNC_FULL.
133 (spi_keystroke_from_x_key_event): Use Accessibility_EventType instead
134 of Accessibility_KeyEventType.
136 * test/key-listener-test.c (report_tab_key_event): Use fprintf
139 * tests/simple-at.c, tests/screen-review-test.c:
140 Add include for <strings.h>.
142 * tests.stress-test.c:
143 Add includes for <unistd.h> and <bonobo/bonobo-main.h>
145 These changes fix compiler warnings when using FORTE compiler on
146 Solaris; fixes bug #107479.
149 2003-04-10 Bill Haneman <bill.haneman@sun.com>
152 * configure.in: revved to 1.1.10
155 (SPI_KEYMASK_NUMLOCK): Added.
157 * registryd/deviceeventcontroller.c:
158 (spi_key_event_matches_listener): AND with a smaller
159 bitmask (as we should).
160 (spi_dec_translate_mask):
161 New method, sets the virtual NumLock modifier bit
162 if numlock is on. Eventually it can handle other virtual
163 modifier bits if needed, or other marshalling from
164 at-spi modifier masks to platform (X) masks.
165 (spi_dec_key_listener_new):
166 Call spi_dec_translate_mask to set up virtual mod bits
167 in the 'mask' field when creating a new listener struct.
168 (spi_dec_emit_modifier_event):
169 Set the virtual (i.e. NumLock) bits before emitting event.
170 (spi_controller_register_with_devices):
171 Query for the NumLock modifier 'physical' bit if Xkb is
172 present, for use in above methods.
176 2003-04-10 Bill Haneman <bill.haneman@sun.com>
178 * registryd/deviceeventcontroller.c:
179 (spi_keystroke_from_x_key_event):
180 Instead of checking to see if the keysym is
181 printable, check the string from XLookupString
182 if available, get the first unicode character from it,
183 and call g_unichar_isprint to determine whether the
184 is_text flag should be TRUE or FALSE.
188 2003-04-02 Padraig O'Briain <padraig.obriain@sun.com>
190 * atk-bridge/bridge.c: Add support for extended events
191 * cspi/spi_event.c: Add documentation and implementation for
193 * tests/event-listener-test.c: Add tests for extended events.
195 This fixes bugs #100424 and #100426.
197 2003-04-02 Padraig O'Briain <padraig.obriain@sun.com>
199 * configure.in: Add 100 to AT_SPI_BINARY_AGE and update calculation
200 of LT_CURRENT. This fixes bug #89350.
202 2003-04-01 Padraig O'Briain <padraig.obriain@sun.com>
204 * atk-bridge/bridge.c (spi_bridge_signal_listener): Add check for
205 number of signal parameter values before accessing them. This fixes
208 2003-04-01 Bill Haneman <bill.haneman@sun.com>
210 * configure.in: Fixed duplicate inclusion of -lspi.
211 * branched for gnome-2-2/HEAD.
212 [created tag "gnome-2-2"]
214 2003-03-07 Bill Haneman <bill.haneman@sun.com>
216 * configure.in: 1.1.9 release.
219 2003-03-07 Bill Haneman <bill.haneman@sun.com>
221 [needed by GOK, to fix bugs 107985 and 107988]
222 * registryd/deviceeventcontroller.c:
223 (spi_dec_clear_unlatch_pending):
224 New method, unsets the 'unlatch' mask for XkbStateNotifyEvents.
225 (spi_dec_set_unlatch_pending):Revised DEBUG comment.
226 (spi_dec_init_mouse_listener):Emit warning if mouse button
228 (spi_device_event_controller_forward_mouse_event):
229 Removed unnecessary parens from a conditional.
230 (global_filter_fn):Added TODO comment.
231 (impl_generate_keyboard_event):
232 Cancel a pending relatch if a 'delatching' key was
235 2003-03-07 Padraig O'Briain <padraig.obriain@sun.com>
237 * atk-bridge/bridge.c:
238 Change atk_signal_child_changed to atk_signal_children_changed.
239 Reorganize code in spi_atk_bridge_signal_listener().
241 * test/event-listener-test.c:
242 Add children_changed_listener and report_children_changed_event()
243 to test AccessibleChildEvent_getChildAccessible.
245 2003-03-05 Padraig O'Briain <padraig.obriain@sun.com>
247 * cspi/spi_event.c (cspi_internal_event_get_text): Change
248 g_strdup to CORBA_String_dup (bug #105291)
250 * test/event-listener-test.c (report_text_event): Add call to
253 2003-02-28 Bill Haneman <bill.haneman@sun.com>
255 * registryd/deviceeventcontroller.c:
256 (spi_keystroke_from_x_key_event):
257 Fix string and keysym return codes to match modifier state.
260 2003-02-28 Bill Haneman <bill.haneman@sun.com>
262 * registryd/deviceeventcontroller.c:
263 (spi_keystroke_from_x_key_event):
264 Fix segv due to improper use of isprint(c). [bug #107254]
266 2003-02-24 Bill Haneman <bill.haneman@sun.com>
269 (get_accessible_text_boundary_type):
270 Move default return value to (new) default case in switch.
271 (get_accessible_text_clip_type):
272 Move default return value to (new) default case in switch.
274 * libspi/application.c:
275 (lookup_toolkit_event_for_name, reverse_lookup_name_for_toolkit_event):
276 Remove unused methods.
277 (impl_accessibility_application_register_object_event_listener):
278 Remove unused methods.
281 Added #include of <math.h>.
283 * registryd/deviceeventcontroller.c:
284 (spi_dec_ungrab_mouse): Bracketed with #ifdefs, since
285 we don't currently use this method.
286 (spi_dec_init_mouse_listener): Don't call XkbGetMap unless
288 (impl_generate_key_event):
289 Remove unused variables.
290 (impl_generate_mouse_event):
291 Initialize button to zero, just in case we get an invalid
292 input. Added support for mouse buttons 4 and 5.
293 (spi_device_event_controller_new):
294 Removed unused variable declaration for 'private'.
296 Added #include of <gdk/gdk.h>
298 2003-02-14 Padraig O'Briain <padraig.obriain@sun.com>
300 * configure.in: Update to work when X is not installed in expected
301 location. Fixes bug #105836.
303 * atk-bridge/bridge.c
304 (spi_atk_bridge_init_event_type_consts): Look up "link-selected" for
306 (spi_atk_register_event_listener): Add signal listener for
308 (spi_atk_bridge_signal_listener): Event event when link-selected
309 signal is emitted. (bug #104622)
311 * cspi/spi_event.c (cspi_internal_event_get_text): Call g_strdup()
312 on returned string. (bug #105291)
314 * test/event-listener-test.c: Add test for link-selected.
316 2003-02-14 Padraig O'Briain <padraig.obriain@sun.com>
318 * atk-bridge/Makefile.am: Correct typo in previous commit.
320 2003-02-13 Padraig O'Briain <padraig.obriain@sun.com>
322 * atk-bridge/Makefile.am: Allow for build directory to be different
323 from source directory
325 * registryd/Makefile.am: Allow for build directory to be different
326 from source directory
330 2003-01-29 Bill Haneman <bill.haneman@sun.com>
333 Fixed dependencies for libcspi so that libspi gets pulled in
334 properly. Fixes 104741.
338 Clean up inline docs a little.
340 2003-01-27 Padraig O'Briain <padraig.obriain@sun.com>
342 * registryd/desktop.c: Implement AccessibleComponent for SpiDesktop.
343 This is done by implementing AtkComponent for SpiAtkDesktop, which is
344 the AtkObject within an SpiDesktop.
345 This addresses bug #101524.
347 * registryd/deviceeventcontroller.c (spi_device_event_controller_init):
348 Remove call to gdk_init().
350 * registryd/registry.c (spi_registry_init): Add call to gdk_init()
351 so that Display is set when SpiDesktop is created.
353 2003-01-21 Padraig O'Briain <padraig.obriain@sun.com>
355 * registryd/deviceeventcontroller.c: Add include of <sys/time.h>
356 This fixes bug #102830.
358 2003-01-15 Padraig O'Briain <padraig.obriain@sun.com>
360 * test/test-simple.c: Update to take account of fact that GailButton
361 now implements AtkText.
362 (create_text_window): Set name on AtkObject for GtkEntry.
363 (validate_accessible): Check accessible name before calling test_text().
365 * libspi/Makefile.am: Fix problem with building outside of source
366 directory. Bug #98120.
368 * cpsi/spi_table.c (AccessibleTable_getNSelectedColumns): Fix
369 typo in documentation comments. Bug #94275.
371 2003-01-15 Padraig O'Briain <padraig.obriain@sun.com>
373 * libspi/text.c (impl_getBoundedRanges): Bug fix.
375 2003-01-10 Padraig O'Briain <padraig.obriain@sun.com>
378 Add includes to avoid compiler warnings on Solaris.
379 (impl_getRangeExtents): Bug fix.
381 2002-12-17 Bill Haneman <bill.haneman@sun.com>
383 Fix for 100944, [API addition approved by Gman and murrayc].
390 * idl/Accessibility_Text.idl:
391 (Text::Range, Text::RangeList, TEXT_CLIP_TYPE): New typedefs
392 (Text::getRangeExtents): New method for efficient
393 bounds query of a text range.
394 (Text::getBoundedRanges): New method for efficient
395 clipping of text to bounding boxes.
396 (unImplemented7, unImplemented8):
397 Removed these padding methods to preserve bincompat.
400 (impl_getRangeExtents): implementation of new IDL.
401 (impl_getBoundedRanges): implementation of new IDL.
402 (SpiTextRect): Internal use struct.
403 (_spi_text_rect_union): internal method, calculates union of two
404 SpiTextRect bounding rects.
405 (_spi_text_range_seq_from_gslist): internal method, allows us
406 to build our sequence efficiently as a gslist then convert it
408 (_spi_bounds_contain): internal method, determines whether
409 a text character is "in" or "out" of a clip rect according to
410 values of TEXT_CLIP_TYPE.
411 (spi_text_class_init): Initialize the new methods in the epv.
414 (AccessibleTextClipType): New enum used by screen review api.
415 (AccessibleTextRange): New struct used by screen review api.
416 (AccessibleText_getRangeExtents):
417 cspi binding for Accessibility_Text_getRangeExtents.
418 (AccessibleText_getBoundedRanges):
419 cspi binding for Accessibility_Text_getBoundedRanges.
420 (AccessibleTextRange_freeRanges): convenience method.
423 (AccessibleText_getRangeExtents):
424 cspi binding for Accessibility_Text_getRangeExtents.
425 (AccessibleText_getBoundedRanges):
426 cspi binding for Accessibility_Text_getBoundedRanges.
427 (AccessibleTextRange_freeRanges): convenience method.
428 (get_accessible_text_clip_type): internal conversion method.
429 (get_accessible_text_ranges_from_range_seq): internal conversion method.
431 * registryd/deviceeventcontroller.c:
432 (spi_dec_mouse_check):
433 Improved behavior for mouse:abs events
434 [same granularity as mouse:rel events, and no
435 events when mouse is idle].
437 2002-12-16 Michael Meeks <michael@ximian.com>
439 * cspi/spi_accessible.c (spi_state_to_corba): rename.
441 * libspi/stateset.c (state_spi_to_atk): split out
442 ( fix several remote array bounds nasties )
443 (spi_atk_state_set_from_sequence, impl_contains, impl_add),
444 (impl_remove): make safe from array bounds issues.
445 (spi_atk_state_from_spi_state): impl.
447 * libspi/stateset.h (spi_state_set_cache_is_empty):
448 add a set of wrapper defines to get layering right.
450 * cspi/spi_accessible.c: update state set stuff to
453 2002-12-14 Michael Meeks <michael@ximian.com>
455 * atk-bridge/bridge.c (spi_atk_bridget_get_dec): impl.
456 to avoid 2 roundtrips to the registry per key event
457 (spi_atk_bridge_key_listener): upd.
458 (deregister_application): release the dec.
460 * registryd/registry.c (notify_listeners_cb):
461 bin lots of re-enterant complexity - we no longer
462 do a round-trip bonobo ref here, ensure that a single
463 listener's exception failure won't poison all other
465 (impl_registry_notify_event): bin obvious memory leak.
467 2002-12-13 Michael Meeks <michael@ximian.com>
469 * atk-bridge/bridge.c (spi_atk_bridge_focus_tracker):
470 init the ev so the error is meaningful.
471 (spi_atk_bridge_key_listener): ditto.
473 * cspi/spi_main.c (cspi_ev): init the ev so we start
474 with a clean slate, otherwise the first exception
477 * cspi/spi_text.c (get_accessible_text_boundary_type):
478 add a fallthrough for no warnings.
480 * cspi/spi_registry.c: prune unused warnings.
482 * cspi/spi_main.c (cspi_object_take): fix
483 mind-blowing brokenness ( by watching the compile
486 * cspi/spi_accessible.c (Accessible_getStateSet):
487 re-impl. to use an AtkStateSet.
488 (spi_state_type_from_accessible_state),
489 (init_state_table): bin these.
491 * libspi/stateset.c (spi_atk_state_set_from_sequence):
493 (atk_state_set_from_accessibility_state_set): here.
495 * cspi/spi_accessible.c (spi_state_to_atk): impl.
496 (AccessibleStateSet_contains, AccessibleStateSet_ref),
497 (AccessibleStateSet_unref, AccessibleStateSet_contains),
498 (AccessibleStateSet_add, AccessibleStateSet_remove),
499 (AccessibleStateSet_equals, AccessibleStateSet_compare),
500 (AccessibleStateSet_isEmpty): re-write to use a local
503 2002-12-13 Bill Haneman <bill.haneman@sun.com>
505 * configure.in: Revved to 1.1.7 (new keymask vals).
507 2002-12-10 Bill Haneman <bill.haneman@sun.com>
510 Added SPI_KEYMASK_MOD4 and SPI_KEYMASK_MOD5.
512 2002-12-10 Padraig O'Briain <padraig.obriain@sun.com>
515 (cspi_internal_event_get_object): Use CORBA_TypeCode_Equivalent()
516 to compare two CORBA_TypeCodes.
517 (cspi_internal_event_add): Silence warning from FORTE compiler.
519 * cspi/bonobo/cspi_bonobo-listener.h: Add function declarations to
520 avoid implicit declaration of functions.
522 2002-12-09 Padraig O'Briain <padraig.obriain@sun.com>
524 * atk-bridge/bridge.c:
525 (spi_atk_bridge_init_event_type_consts): Store signal id for
526 active-descendant-changed signal.
527 (spi_atk_register_event_listeners): Add signal listener for
528 active-descendant-changed signal,
529 (spi_atk_bridge_signal_listener): Move code in function
530 spi_atk-signal_emit_event() into this function.
531 Add support for active-descendant-changed
532 Update support for child-changed signal.
533 (spi_bridge_window_event_listener): Silence warning.
535 * libspi/spi_private.[ch]:
536 (spi_init_any_object): Change second parameter from CORBA_Object to
538 Omit call to CORBA_Object_duplicate().
539 Set CORBA_any's _value to CORBA_Object*.
541 2002-12-06 Bill Haneman <bill.haneman@sun.com>
547 (AccessibleEvent_ref, AccessibleEvent_unref):
548 New methods, for persisting an event outside the emission context.
549 Must be used if the new accessor methods are to be called
550 outside of the event listener's callback.
552 * cspi/bonobo/cspi-bonobo.c:
553 (cspi_dup_ref): Pass 'ev' to bonobo_object_dup_ref
554 as second parameter instead of NULL, so we can call
555 cspi_check_ev afterwards.
558 (cspi_object_take): New internal method,
559 converts a CORBA_Object reference to a hard ref on
560 an Accessible if possible, returning NULL if the object
561 reference is invalid or an Accessible * otherwise.
564 (AccessibleEvent_ref):
565 Increment the event's internal private refcount, and
566 add the event's internal struct to an internal cache
567 if it's not already there.
568 (AccessibleEvent_unref):
569 Decrement the event's refcount and remove it from
570 the cspi event cache if refcount==0.
571 (cspi_event_compare): New private method.
572 Compares two event structs via their ids. Used
574 (cspi_internal_event_lookup): New private method.
575 (cspi_internal_event_check): New private method,
576 a 0-order sanity check for events to make sure their
577 private data is intact.
578 (cspi_internal_event_add, cspi_internal_event_remove):
579 New private methods for managiing the event cache.
581 * cspi/bonobo/cspi-bonobo-listener.c:
583 Initialize the new private data elements (id, magic, ref_count).
585 * atk-bridge/bridge.c:
586 (spi_atk_bridge_signal_listener):
587 Fixed bug #100530, passing wrong params to emission func.
589 * registryd/deviceeventcontroller.c:
590 (spi_dec_button_update_and_emit):
591 Fixed type in mask bit operations; fix for #99799.
593 2002-12-02 Bill Haneman <bill.haneman@sun.com>
595 Removed some of the more dangerous workarounds from
596 previous commit; they are only needed by GOK, which
597 in reality should be using another method to accomplish
598 the goals. So on reconsideration some of the workarounds
601 * registryd/deviceeventcontroller.c:
602 (spi_keycodes_contain, spi_dec_init_keycode_list):
603 Removed these methods, used only by a nasty hack to try
604 and detect whether a key synthesis should be allowed
605 to reset the XKB latch state or not. This code was only
606 required to work around an interaction between GOK,
607 button events, and XKB.
608 (impl_generate_key_event):
609 Removed hack at end of key generation that tried to
610 "do the right thing" if XKB latch keys were generated
611 in the midst of button press/release pairs.
614 Added a check for HAVE_XINPUT. Not normally used yet.
616 2002-11-25 Bill Haneman <bill.haneman@sun.com>
618 Workarounds and fixes for mouse event/XKB interaction.
620 * registryd/deviceeventcontroller.c:
621 (spi_keycodes_contain, spi_dec_init_keycode_list):
622 New internal methods.
623 (spi_dec_set_unlatch_pending):
624 Split the method that tells XKB to expect an
625 unlatch (and revert it) out of the rest of the
626 event handling code. This method is called by the
627 two mouse event handlers (the poll and the filter).
628 (spi_dec_update_and_emit, spi_dec_mouse_check):
629 New methods split from spi_dec_poll_mouse_moved.
630 The second one is now called from inside the filterFn
631 when an XKB delatch event is received, to determine
632 whether to revert the delatch or not.
633 (spi_poll_mouse_moved): Refactor; also we can now
634 properly handle the case where multiple button states
635 have changed between polling cycles and we didn't get
636 notified due to another client's grab.
638 Synchronize the server while handling an XKB notification.
639 Ugly, but apparently necessary to avoid nasty races.
640 Check the mouse state on receipt of an XKB latch change,
641 to decide whether to revert the latch or not. (Latches are
642 reverted if there is an immediately preceding mouse button
643 event that a client has consumed, in which case we don't want
644 the user to see the side-effect of the event).
645 (spi_device_event_controller_forward_mouse_event):
646 Check for modifier events and fire before resetting mouse_mask_state,
647 prevents losing modifier events.
649 (impl_generate_keyboard_event):
650 If we've just generated a keyboard event for a non-shift key,
651 we don't want to revert the pending XKB latch.
652 Otherwise, check the modifier state (via a call to
653 spi_dev_mouse_check) and set the relatch mask to
654 that state before returning.
656 2002-11-24 Bill Haneman <bill.haneman@sun.com>
659 Updated NEWS (accidentally didn't make it into 1.1.5 tarball,
662 * atk-bridge/bridge.c:
663 (spi_atk_register_event_listeners):
664 Don't re-register for ATK events if the registry has died
665 and the app needs to re-register; the ATK listeners are in
666 process and doing so will cause duplicate emission.
668 * registryd/deviceeventcontroller.c:
669 (spi_poll_mouse_moved):
670 Reformat the source, detect and emit multiple button-change
671 events (i.e. if multiple buttons have changed between poll
673 Add code to detect mouse-down events even when the pointer
674 is grabbed; workaround for GOK bug 98420.
675 (spi_controller_register_with_devices):
676 Call XTestGrabControl with 'impervious' flag set to True,
677 allows us to synthesize events and query the pointer even during
678 an active grab by another client.
679 (spi_device_event_controller_forward_mouse_event):
680 Set the mouse_mask_state to the mouse_button_state from
681 the intercepted event, to synchronize the grab listener with
684 2002-11-20 Bill Haneman <bill.haneman@sun.com>
686 * cspi/spi_accessible.c:
687 (AccessibleRole_getName):
688 Added necessary strings for making this (deprecated)
689 method work with the new role types.
690 (init_role_table, role_table):
691 Added definition of SPI_ROLE_APPLICATION.
693 * libspi/spi-roletypes.h:
694 Added SPI_ROLE_APPLICATION.
696 * idl/Accessibility_Role.idl:
697 Added ROLE_APPLICATION.
699 * docs/reference/cspi/at-spi-cspi-decl.txt:
700 Added SPI_ROLE_APPLICATION to docs.
702 2002-11-20 Padraig O'Briain <padraig.obriain@sun.com>
704 * cspi/spi_accessible.c
705 (cspi_init_role_table): Do not write beyond end of role_table.
706 (Accessible_getRole): Use correct type for value returned by
707 Accessibility_Accessible_getRole().
709 * libspi/accessible.c (spi_init_role_lookup_table): Do not write
710 beyond end of role_table. (This fixes bug #98269)
712 * libspi/application.c: Add include file spi-private.h for
713 definition of spi_init_any_nil.
715 2002-11-19 Bill Haneman <bill.haneman@sun.com>
719 * libspi/spi-private.h:
720 Added DGB() macro, and extern int _dbg declaration.
722 * registryd/registry.c:
723 (definitions) storage for _dbg.
725 Get environment variable "AT_SPI_DEBUG".
726 (spi_registry_set_debug):
727 New method, to initialize _dbg value.
728 (spi_listener_struct_new, spi_registry_object_finalize):
729 (notify_listeners_cb):
730 Changed fprintfs to use DBG and g_warning().
732 * registryd/deviceeventcontroller.c:
733 (_deregister_keygrab, spi_controller_register_device_listener):
734 Changed debug/warning messages to use DBG macro.
738 Changed warning messages to use DBG macro and g_warning().
740 * atk-bridge/bridge.c:
741 (atk_bridge_init, spi_atk_bridge_get_registry):
742 (spi_atk_bridge_exit_func):
743 (spi_atk_bridge_property_event_listener):
744 Changed status, warning, and error messages to use
745 g_warning, g_message, and DBG macros.
748 Read the state of the AT_SPI_DEBUG environment variable
749 and set a local '_dbg' accordingly.
751 2002-11-19 Bill Haneman <bill.haneman@sun.com>
753 FIXES for 98836, 98842, other bugs.
756 Revved to 1.1.4, interface-age=4, binary-age=4.
758 * registryd/deviceeventcontroller.c:
760 Fixed crasher bug in last_mouse_pos initialization.
762 * registryd/registry.c:
763 (desktop_add_application, desktop_remove_application):
764 Added (and then commented out) some support for
765 object context marshalling. [TODO]
767 * atk-bridge/bridge.c:
768 (spi_atk_bridge_event_context_create):
769 Commented out object context creation until it can
770 be properly tested and debugged.
772 * registryd/registry.c:
773 (impl_registry_notify_event):
774 Fixed crasher bug, we were calling
775 spi_re_entrant_list_foreach () with an empty list.
777 2002-11-18 Bill Haneman <bill.haneman@sun.com>
779 * idl/Accessibility_Action.idl:
780 * idl/Accessibility_Component.idl:
781 * idl/Accessibility_Desktop.idl:
782 * idl/Accessibility_Event.idl:
783 * idl/Accessibility_Hyperlink.idl:
784 * idl/Accessibility_Image.idl:
785 * idl/Accessibility_Relation.idl:
786 * idl/Accessibility_Selection.idl:
787 * idl/Accessibility_State.idl:
788 * idl/Accessibility_Value.idl:
789 Updated unimplemented slot count to minimum of
790 four for all interfaces, for ABI freeze.
792 * idl/Accessibility_EditableText.idl:
793 * idl/Accessibility_Text.idl:
794 Updated unimplemented slot count to six
797 * idl/Accessibility_Registry.idl:
798 Updated unimplemented slot count to six
799 (also for DeviceEventController),
802 * idl/Accessibility_Table.idl:
803 Updated unimplemented slot count to eight,
806 * idl/Accessibility_Event.idl:
807 Added CORBA_any "any_data" member to Event struct.
809 * idl/Accessibility_Event.idl:
810 Added CORBA_any "any_data" member to Event struct.
812 * atk-bridge/bridge.c:
814 atk_signal_text_changed, atk_signal_child_changed,
815 signal ids queried from gtype system.
816 (AtkBridgeEventContextType): New enum.
817 (AtkBridgeEventContextData): New struct.
818 (AtkBridgeEventContext): New struct.
819 (atk_bridge_init_event_type_consts):
820 New method, initializes type contants for comparison
821 prior to emit_eventv.
822 (atk_bridge_event_context_init): New method,
823 initializes a CORBA_any from an AtkBridgeEventContext.
824 (atk_bridge_focus_tracker): Call spi_init_any_nil to
825 initialize the event.any_data struct.
826 (spi_atk_bridge_event_context_create): New method,
827 creates an AtkBridgeEventContext from signal/event info.
828 (spi_atk_bridge_event_context_free): New method.
829 (spi_atk_emit_eventv): Changed to take an
830 AtkBridgeEventContext parameter. We now initialize
831 the event.any_data member prior to notifying the
832 Registry, via the AtkBridgeEventContext.
833 (spi_atk_bridge_property_event_listener):
834 (spi_atk_bridge_state_event_listener):
835 Match emit_eventv signature.
836 (spi_atk_bridge_object_event_listener):
837 Match emit_eventv signature, and create an
838 event context from the event details.
839 Free the event context afterwards.
840 (spi_atk_bridge_window_event_listener):
841 Create an event context, pass it to the
845 (AccessibleEvent_getContextString):
846 (AccessibleEvent_getContextObject):
847 New methods, allow query of AccessibleEvent objects
848 for more context details (via the "any_data" member
849 of the Event struct, above).
852 Definitions for AccessibleEvent_getContextString
853 and AccessibleEvent_getContextObject.
855 * cspi/spi_listener.h:
856 (InternalEvent): New struct.
859 (AccessibleEvent_getContextString):
860 (AccessibleEvent_getContextObject):
861 Implementations of new methods, for obtaining
862 additional context information from some event types.
864 * cspi/spi_registry.c:
865 (SPI_registerGlobalEventListener):
866 Added mention of active-descendant-changed event in docs.
868 * cspi/cspi-bonobo-listener.c:
870 Marshal the any into the AccessibleEvent via
873 * libspi/spi-private.h:
874 #include <orbit/orbit.h>
876 (spi_init_any_string):
877 (spi_init_any_object):
878 New convenience function declarations.
882 (spi_init_any_string):
883 (spi_init_any_object):
884 New convenience function implementations.
886 * registryd/deviceeventcontroller.c:
887 (spi_poll_dec_mouse_moved):
888 (spi_device_event_controller_forward_mous_event):
889 Initialize any_data member of event.
890 (spi_deregister_controller_device_listener):
891 Fix incorrect param pass which was preventing deregistration.
893 * registryd/registry.c:
894 (desktop_add_application):
895 (desktop_remove_application):
896 Add object data to event's any_data before dispatch.
898 Fix for error messages from GAIL.
900 * test/event-listener-test.c:
901 Test new ContextString and "any_data" API:
902 (report_text_event): New method query and output context string.
903 (main): register a new text listener with report_text_event
906 2002-11-19 Darren Kenny <darren.kenny@sun.com>
908 Fixes for bugs 98127 and 97914.
909 * cspi/spi-roletypes.h:
910 Added SPI_ROLE_HEADER, SPI_ROLE_FOOTER, SPI_ROLE_PARAGRAPH,
912 * cspi/spi-statetypes.h:
913 Added SPI_STATE_MANAGES_DESCENDANTS
915 Added SPI_RELATION_FLOWS_TO, SPI_RELATIONS_FLOWS_FROM,
916 SPI_RELATION_SUBWINDOW_OF, SPI_RELATION_EMBEDS, SPI_RELATION_EMBEDDED_BY
917 * cspi/spi_accessible.c:
918 Added mapping in role_table from new Accessibility_ROLE_* to SPI_ROLE_*
919 Added mapping from SPI_STATE_MANAGES_DESCENDANTS to
920 Accessibility_STATE_MANAGES_DESCENDANTS
921 * libspi/accessible.c:
922 Added Mapping from ATK_ROLE_{FOOTER,HEADER,PARAGRAPH,RULER} to
923 Accessibility_ROLE_{FOOTER,HEADER,PARAGRAPH,RULER}
924 As requested by Bill, I also cleaned up the alignment.
926 Added mapping of the ATK_RELATION_{FLOWS_TO,FLOWS_FROM,SUBWINDOW_OF,
927 EMBEDS,EMBEDDED_BY} to equivalend Accessibility_RELATION_*
929 Added mappings between ATK_STATE_MANAGES_DESCENDANTS and
930 Accessibility_STATE_MANAGES_DESCENDANTS
931 * docs/reference/cspi/tmpl/spi_accessible.sgml:
932 Document changes reflecting modifications to roles.
933 * docs/reference/cspi/tmpl/spi_relation.sgml:
934 Document changes reflecting modifications to relations.
935 * docs/reference/cspi/tmpl/spi_stateset.sgml:
936 Document changes reflecting modifications to states.
938 2002-11-17 Bill Haneman <bill.haneman@sun.com>
941 Revved to 1.1.3, interface-age=3, binary-age=3.
945 Removed accessx-gui from the tests, since we have a nice
946 keyboard accessibility capplet now :-)
948 * test/keysynth-demo.c:
949 (increment_scan): removed do-nothing default: case,
952 * test/visual-bell.c:
953 (main) : removed do-nothing default: case,
957 (AccessibleAction_getKeyBinding_):
958 Documented keybinding string format.
962 (AccessibleText_getAttributes):
963 Documented the text attribute string format.
964 It's changed to use semicolon delimiters also,
965 to prevent clashes with CSS attributes, but the old
966 trick of looking for ", " strings will still work
967 (as unreliably as ever). Fix for bug related to 97916.
970 Include <cspi/bonobo/cspi-bonobo-listener.h>
972 (SPI_freeAccessibleKeySet):
973 (AccessibleKeystrokeListener_addCallback):
974 (AccessibleKeystrokeListener_removeCallback):
975 Modify to use AccessibleDeviceListener API internally,
976 instead of AccessibleKeystrokeListener.
978 * idl/Accessibility_Event.idl:
979 Added two more empty slots to EventListener (for a total of four).
981 * idl/Accessibility_Accessible.idl:
982 Added four empty slots to Accessible interface.
984 2002-11-15 Bill Haneman <bill.haneman@sun.com>
986 * idl/Accessibility_Registry.idl:
987 (KeyEventType, EventType):
988 Marked KeyEventType as deprecated; it duplicates
989 functionality of EventType, which has been extended to
990 include Mouse-button events.
991 (KeyEventTypeSeq): defined in terms of EventType.
992 (registerDeviceEventListener, deregisterDeviceEventListener):
993 New methods, for managing listeners to device events,
994 which potentially may consume them.
997 Added definition for AccessibleDeviceListener.
999 * cspi/spi-listener.h:
1000 (enum AccessibleDeviceEventType):
1001 Added SPI_BUTTON_PRESSED and SPI_BUTTON_RELEASED.
1002 Typedef'd AccessibleKeyEventType to AccessibleDeviceEventType
1003 for backwards compat.
1004 (AccessibleKeystroke): Renamed AccessibleKeystroke to AccessibleDeviceEvent,
1005 and typedef'd AccessibleKeystroke to it for back-compat.
1006 (AccessibleDeviceListenerCB):
1007 New function prototype typedef.
1010 (AccessibleDeviceEventMask): New typedef.
1011 (AccessibleModifierMaskType): New typedef (renamed from AccessibleKeyMaskType).
1012 (AccessibleKeyMaskType):
1013 Set equivalent to AccessibleModifierMaskType for back-compat.
1014 (SPI_createAccessibleKeystrokeListener):
1015 (AccessibleKeystrokeListener_unref):
1016 Deprecated in favor of equivalent (better-named) new API below..
1017 keystroke listeners are like all device listeners.
1018 (SPI_createAccessibleDeviceListener, AccessibleDeviceListener_unref)
1019 New API names for old features :-).
1020 (AccessibleDeviceListener_addCallback):
1021 (AccessibleDeviceListener_removeCallback):
1022 (SPI_registerDeviceEventListener):
1023 (SPI_deregisterDeviceEventListener):
1027 (SPI_createAccessibleKeystrokeListener):
1028 Use new preferred API, cspi_device_listener_new() and
1029 cspi_device_listener_add_cb().
1030 (AccessibleKeystrokeListener_removeCallback):
1031 Use new preferred API, cspi_device_listener_remove_cb().
1032 (AccessibleKeystrokeListener_unref):
1033 Use new preferred API, cspi_device_listener_unref().
1034 (SPI_createAccessibleDeviceListener):
1035 (AccessibleDeviceListener_addCallback):
1036 (AccessibleDeviceListener_removeCallback):
1037 Implementation of new API.
1039 * cspi/spi_registry.c:
1040 (SPI_registerDeviceEventListener):
1041 (SPI_deregisterDeviceEventListener):
1042 Implementation of new API. Fixed memory leak and removed need to
1043 allocate EventTypeSeq (thanks Michael for catching this).
1044 Squashed a wayward CORBA_exception_free that shouldn't get called.
1046 * cspi/bonobo/cspi-bonobo-listener.c:
1048 Changed union (bin-and-api-compatibly) to refer to AccessibleDeviceListenerCB.
1049 (cspi_key_event): renamed to cspi_device_event().
1050 Internal use of CSpiKeystrokeListener changed to CSpiDeviceListener.
1051 Extended to handle mouse button events as well as key events.
1052 (CSpiKeystrokeListener):
1053 Class superceded by CSpiDeviceListener.
1054 (cspi_keystroke_listener_add_callback, cspi_keystroke_listener_get_corba):
1055 These internal APIs changed to "*device_listener" from "*keystroke_listener".
1057 * cspi/bonobo/cspi-bonobo-listener.h:
1058 (CSpiKeystrokeListener):
1059 Class superceded by CSpiDeviceListener.
1060 (cspi_keystroke_listener_add_callback, cspi_keystroke_listener_get_corba):
1061 These internal APIs changed to "*device_listener" from "*keystroke_listener".
1063 * libspi/Makefile.am:
1064 Replaced keystrokelistener.h and keystrokelistener.c
1065 with devicelistener.h and devicelistener.c; keystrokelisener.h
1066 stub retained for back-compat.
1068 * libspi/keystrokelistener.c:
1072 Replaced inclusion of keystrokelistener.h with devicelistener.h.
1074 * registryd/deviceeventcontroller.c:
1075 (DEControllerListener): Added Accessibility_EventTypeSeq member.
1076 (DEControllerKeyListener): Removed Accessibility_KeyEventTypeSeq member.
1077 (DEControllerPrivateData): Added xkb settings data.
1078 (spi_dec_poll_mouse_moved): Changed to dispatch device events for
1079 button release events (which can't be captured via XGrabButton).
1080 Don't dispatch via the 'normal' event mechanism if the device event was
1082 (spi_dec_key_listener_new, spi_key_listener_clone, spi_key_listener_data_free):
1083 Handle the typeseq data in its new location (see above).
1084 (spi_dec_listener_new, spi_listener_clone, spi_listener_clone_free):
1085 New methods, for "generic" device listeners.
1086 (spi_controller_register_device_listener):
1087 Now handle mouse event listeners as well as key listeners.
1088 (spi_controller_notify_mouselisteners):
1089 New internal method.
1090 (spi_device_event_controller_forward_mouse_event):
1091 Now we notify mouse device listeners as well as generating the
1092 non-consumable "mouse:" events.
1094 We must check and restore the XKB
1095 modifier map if we consume the event, since the act of triggering
1096 a mouse event will normally reset the XKB latch. This is required for
1098 (spi_controller_register_with_devices):
1099 Load the XKB settings when registering, and register for XKB
1100 state notify events.
1101 (spi_key_eventtype_seq_contains_event):
1102 Renamed spi_eventtype_seq_contains_event, since it's used
1103 internally for all device event types now.
1104 (spi_key_event_matches_listener):
1105 Uses spi_eventtype_seq_contains_event now.
1106 (spi_device_event_controller_object_finalize):
1107 Free the private data and the XkbKeyboard struct.
1108 (impl_register_device_listener, impl_deregister_device_listener):
1109 Implementation of new IDL.
1110 (spi_deregister_controller_device_listener):
1111 New internal method.
1112 (dec_xkb_get_slowkeys_delay dec_xkb_get_bouncekeys_delay):
1113 More efficient implementation, we don't have to create a new
1114 XkbControls structure every time we query.
1115 (spi_device_event_controller_class_init):
1116 Initialize the epv entries for the new IDL. Assign the
1117 "spi-dec-private" quark.
1118 (spi_device_event_controller_init):
1119 Initialize the private data.
1120 (spi_device_event_controller_forward_key_event):
1121 Removed a bogus CORBA_exception_free() call.
1123 * registryd/deviceeventcontroller.h:
1124 Replaced inclusion of keystrokelistener.h with
1127 * test/event-listener-test.c:
1128 (report_mouse_event):
1131 Added mouse-event device listener.
1133 * test/test-simple.c:
1134 (create_test_window):
1135 Fixed regression (we were instantiating a GtkRange,
1136 which is now an abstract class). Also fixed to match
1137 existing AtkRole names, this seems to have changed in ATK
1138 awhile ago; too late now I think, and the new
1139 mechanism is at least elegant and consistent with the
1140 glib enum "nick" APIs.
1142 2002-11-15 Darren Kenny <darren.kenny@sun.com>
1144 * idl/Accessibility_Relation.idl:
1145 add RELATION_FLOWS_TO,RELATION_FLOWS_FROM,RELATION_SUBWINDOW_OF,
1146 RELATION_EMBEDS,RELATION_EMBEDDED_BY
1147 * idl/Accessibility_Role.idl:
1148 add ROLE_HEADER, ROLE_FOOTER, ROLE_PARAGRAPH, ROLE_RULER
1149 * idl/Accessibility_State.idl:
1150 add STATE_MANAGES_DESCENDANTS
1151 * test/event-listener-test.c:
1152 Added a listener for active-descendant events.
1154 2002-11-15 Padraig O'Briain <padraig.obriain@sun.com>
1156 * atk-bridge/bridge.c
1157 (atk_bridge_init): If application is Bonobo component wait until top
1158 level is added before registering
1159 (spi_atk_bridge_do_registration): New function which contains code,
1160 formerly in atk_bridge_init, to do application registration.
1161 (spi_atk_bridge_toplevel_added): Signal called when top level
1162 added to Bonobo component
1164 This fixes bug #83134.
1166 2002-10-23 Vitaly Tishkov <tvv@sparc.spb.su>
1168 * registryd/deviceeventcontroller.c
1169 Fixed compilation error caused by calling gettimeofday()
1172 2002-10-18 Bill Haneman <bill.haneman@sun.com>
1177 Added template for HAVE_XKB.
1180 Changes to check for XKB, and to set the HAVE_XKB #define if it
1183 * libspi/listener.c:
1184 ()impl_notify_event): Make failure to get event source name
1187 * registryd/deviceeventcontroller.c:
1188 (#include): include X11/XKBlib.h.
1189 (DEControllerPrivateData) : New struct.
1190 (dec_xkb_get_slowkeys_delay) (dec_xkb_get_boucekeys_delay) :
1192 (dec_synth_keycode_press) (dec_synth_keycode_release):
1193 New methods; split the key synthesis code into these methods.
1194 They check XKB settings before determining the "time" values to
1195 pass to Xtest; this fixes bug #95828.
1196 (impl_generate_keyboard_event): Changed to use methods above,
1197 instead of callng Xtest directly.
1198 (spi_device_event_controller_init): Initialize new privae struct s
1200 (spi_device_event_controllr_object_finalize):
1201 Free the (new) private data.
1203 * registryd/deviceeventcontroller.h:
1204 Add new gpointer to end of struct data.
1206 2002-10-16 Bill Haneman <bill.haneman@sun.com>
1209 Incremented revision to 1.1.2, SONAME is still '.so', library
1210 extensions are ".so.0.0.2".
1212 * registryd/deviceeventcontroller.c:
1213 FIXES FOR #93592 and #95940.
1214 (statics): renamed mouse_button_state to mouse_mask_state,
1215 added key_modifier_mask.
1216 (spi_dec_poll_mouse_moved):
1217 Added key modifier checks, and emit "keyboard:modifiers"
1218 events when the key modifiers currently in use change.
1219 Also generate "mouse:abs" events periodically, even if the mouse
1220 is stationary (should we?).
1221 Alternatively we could generate "mouse:abs" events for either all
1222 mouse movements, or every 'nth' mouse movement, or at the
1223 beginning and end of every "active" mouse period.
1225 * test/event-listener-test.c:
1226 (main): Added listener for "keyboard:modifiers" events.
1228 2002-10-15 Bill Haneman <bill.haneman@sun.com>
1230 * libspi/keymasks.h:
1231 Added key mask #defines for mouse buttons; e.g.
1232 SPI_KEYMASK_BUTTON1, etc.
1235 Incremented dependency on ATK to version 1.1.0. (This dependency
1236 is probably premature but will soon be real enough).
1238 2002-10-11 Padraig O'Briain <padraig.obriain@sun.com>
1240 * libspi/hyperlink.[ch]
1241 (spi_hyperlink_new): Change parameter from AtkObject to AtkHyperlink.
1242 (get_hyperlink_from_servant): Check object is AtkHyperlink not
1245 * libspi/hypertext.c (impl_getLink): Remove cast of AtkHyperlink to
1250 2002-10-10 Padraig O'Briain <padraig.obriain@sun.com>
1252 * registryd/deviceeventcontroller.c
1253 (global_filter_fn): Correct typo which caused KeyPress and KeyRelease
1254 events to be ignored.
1255 (spi_controller_update_key_grabs): Use GrabModeSync for pointer_mode
1256 keyboard_mode so that XAllowEvents() can be called.
1260 2002-10-08 Padraig O'Briain <padraig.obriain@sun.com>
1262 * cspi/spi-accessible.c: Correct names of roles returned by
1263 AccessibleRole_getName(). Fixes bug #95055.
1265 2002-10-03 Padraig O'Briain <padraig.obriain@sun.com>
1267 * cspi/spi_main.c (report_leaked_ref): Report address of leaked
1270 * registryd/registry.c
1271 (desktop_remove_application: Write diagnostic message to stderr for
1274 (impl_accessibility_registry_deregister_global_event_listener):
1275 Correct size of lists array. This addresses bug #94555).
1277 2002-09-24 Padraig O'Briain <padraig.obriain@sun.com>
1279 * libspi/accessible.c (spi_init_role_lookup_table): Correct typos
1282 2002-09-19 Padraig O'Briain <padraig.obriain@sun.com>
1284 * registryd/Makefile: Add CLEANFILES so that .server file is removed
1287 * registryd/registry.c (impl_registry_notify_event): Remove
1288 unnecessary call to parser_event_type().
1290 * docs/reference/cspi/tmpl/spi_component.sgml:
1291 Add reference to SPI_LAYER_WINDOW.
1293 2002-09-17 Padraig O'Briain <padraig.obriain@sun.com>
1295 * registryd/registry.c
1296 (desktop_add_application): Remove leak.
1297 (desktop_remove_application): Remove leak.
1298 (parser_event_type): Remove leak.
1300 2002-09-16 Padraig O'Briain <padraig.obriain@sun.com>
1302 * registryd/deviceeventcontroller.c (spi_dec_mouse_moved): Removed
1303 bogus call to CORBA_string_dup(). Also removed unnecessary
1304 g_string_dup/g_free calls.
1306 2002-09-13 Bill Haneman <bill.haneman@sun.com>
1308 * registryd/deviceeventcontroller.c:
1309 spi_dec_mouse_moved: Fixed memory leaks and reordered 2 code blocks.
1311 * test/event-listener-test.c:
1312 main: commented out three redundant listeners, to reduce output
1313 noise. (They still are potentially useful for testing).
1316 2002-09-13 Michael Meeks <michael@ximian.com>
1318 * Update all the copyrights to include Ximian.
1320 2002-09-06 Mark McLoughlin <mark@skynet.ie>
1322 * cspi/spi.h: add SPI_LAYER_WINDOW.
1324 * cspi/spi_component.c: (AccessibleComponent_getLayer):
1325 add Accessibility_LAYER_WINDOW case.
1327 * idl/Accessibility_Component.idl: add LAYER_WINDOW.
1329 * libspi/component.c: (impl_accessibility_component_get_layer):
1330 add ATK_LAYER_WINDOW case.
1332 2002-08-28 Bill Haneman <bill.haneman@sun.com>
1334 * configure.in: incremented micro version.
1336 * branched for gnome-2-0 (a gnome-2-0-0 branch already exists).
1338 2002-08-20 Bill Haneman <bill.haneman@sun.com>
1341 Clarified and reworded our commit policy.
1344 Started an API "todo" addition list for 2.2.
1347 (impl_getSelection):
1348 Free char pointer from atk_text_get_selection, which was being leaked.
1350 2002-08-19 Bill Haneman <bill.haneman@sun.com>
1353 Small revision to author acknowledgement.
1355 2002-08-19 Padraig O'Briain <padraig.obriain@sun.com>
1357 * atk-bridge/bridge.c (spi_atk_bridge_signal_listener):
1358 If signal has detail add it to the type of the event.
1361 2002-08-12 Michael Meeks <michael@ximian.com>
1363 * test/test-simple.c (global_listener_cb): bin bogosity.
1364 (test_keylisteners): disable, still doesn't work reliably,
1365 certainly not on my system anyway.
1367 * atk-bridge/bridge.c (spi_atk_bridge_key_listener):
1368 don't leak a reference on the DEC. This round-trip
1369 fetching of the DEC per keystroke sucks, it should be
1372 * cspi/spi-private.h,
1373 * cspi/cspi-lowlevel.h,
1374 * cspi/bonobo/cspi-bonobo-listener.[ch],
1375 * cspi/bonobo/cspi-bonobo.c: get the copyright
1376 notices better - there is still a large amount of
1377 work in at-spi falsely attributed solely to Sun.
1379 * cspi/spi_main.c (cspi_object_ref): kill bogus
1380 hash lookup, just increment the ref.
1381 (SPI_freeString): make explicit the fact that we
1382 handle NULL strings just fine.
1383 (report_leaked_ref): obey coding standards.
1384 (cspi_object_hash, cspi_object_equal): kill retval.
1385 (cspi_object_release): only release if not on loan.
1386 (cspi_object_get_ref): add 'loan' concept, bin 'do_ref'.
1387 (cspi_object_borrow, cspi_object_return): impl.
1389 * cspi/bonobo/cspi-bonobo-listener.c (cspi_event):
1390 use cspi_object_borrow / return.
1392 2002-08-12 Darren Kenny <darren.kenny@sun.com>
1394 * cspi/bonobo/cspi-bonobo-listener.c:
1396 Don't call cspi_oject_new() because this is creating a new Accessible
1397 every single time that an event is fired. This causes ATs like at-poke
1398 to nolonger recognise the source of the event and thus ignore it.
1399 Re-use the object from the cache, ref it and then unref it after the
1400 listeners have been called.
1402 2002-08-06 Darren Kenny <darren.kenny@sun.com>
1404 * test/event-listener-test.c:
1405 Added command-line options to disable mouse events (m) and
1408 2002-07-31 Padraig O'Briain <padraig.obriain@sun.com>
1410 * configure.in: Update required versions of ATK, GTK+ and GAIL
1412 * cspi-1.0.pc.in: Add dependency for X include files
1415 * cspi/bonobo/Makefile.am:
1416 Add $(X_CFLAGS) so that X include files
1417 are picked up even if not in standard place (bug #71686)
1419 2002-06-25 Bill Haneman <bill.haneman@sun.com>
1421 * registryd/deviceeventcontroller.c: fix for 84261
1422 (spi_dec_mouse_moved):
1423 Added test of mouse button mask, so that we can detect mouse
1424 button release. Unfortunately we can't otherwise detect mouse
1425 button release events without consuming the mouse press event,
1426 because of the way XGrabButton works. This means that our mouse
1427 release events have a latency dependent on the polling period
1428 while the mouse button is down. At least in this case we only
1429 have to poll while the button is down, and not at other times.
1430 If the button masks don't match with what the last press event
1431 reported, we report the appropriate button release event.
1432 (spi_dec_ungrab_mouse):
1433 New method (not yet called).
1434 (spi_device_event_controller_forward_mouse_event):
1435 New method, sends mouse press event from GdkFilter.
1436 (spi_dec_init_mouse_listener):
1437 Added code to call XGrabButton, redirecting mouse button events to
1438 the root window and our Gdk event loop.
1440 Added code to filter mouse button events, and reordered.
1442 * test/event-listener-test.c:
1444 Added registration for mouse events of type "mouse:button".
1446 2002-06-25 Bill Haneman <bill.haneman@sun.com>
1448 * registryd/deviceeventcontroller.c: partial fix for 84261
1449 (spi_dec_poll_mouse_idle):
1450 New method, a timeout which checks to see if the mouse
1452 (spi_dec_poll_mouse_moving):
1453 A timeout to be called when mouse motion is underway.
1454 (spi_dec_poll_mouse_moved):
1455 A method which fires an event if the mouse has moved, and reports
1456 whether or not it did so.
1457 (spi_dec_init_mouse_listener):
1458 A method which sets up the timeouts above.
1459 (spi_device_event_controller_new):
1460 Now calls spi_dec_init_mouse_listener.
1462 * registryd/registry.c:
1463 (spi_registry_init):
1464 Now we initialize the device event controller when the registry is
1465 initialized, instead of waiting until a client has requested a key
1466 event notification; this is because we need the event controller
1467 for mouse events, but the mouse event registration API is a
1468 "registry" call and doesn't explicitly call the
1469 deviceeventcontroller.
1470 We now report mouse motion events with a 100 ms idle latency and
1471 a 20 ms granularity when motion is in progress.
1473 * test/event-listener-test.c:
1475 We now register the "detail listener" for events of type
1476 "mouse:rel" and "mouse:abs" (Note, mouse-abs events generally are
1477 delivered only for the first mouse event received, and thereafter
1478 "mouse:abs" events are delivered.)
1480 * cspi/spi_registry.c:
1481 DOCS: Documented the above mouse event typestrings.
1483 2002-06-21 Bill Haneman <bill.haneman@sun.com>
1485 Happy Summer Solstice...
1487 * registryd/deviceeventcontroller.c: [fix for bug 84100]
1488 (spi_controller_notify_keylisteners):
1489 Changes to remove a listener from the listener list, freeing its
1490 open keygrabs, if a notification to that listener fails. This
1491 means that although a dead listener can continue to hold a passive
1492 keygrab, a maximum of one dispatch to such a listener can fail
1493 before the listener is removed from the list, thus the keygrab
1494 will be released on the next occurrence.
1495 As part of this fix:
1496 (spi_notify_keylisteners):
1497 Renamed to spi_controller_notify_keylisteners, as the controller
1498 instance must now be passed as an argument.
1499 The copied 'notify' GList is now a list of DEControllerKeyListener
1500 objects, since we need more than just the CORBA reference if a
1501 notify fails and we need to deregister the listener.
1502 (impl_notify_listeners_sync):
1503 (impl_notify_listeners_async):
1504 (spi_device_event_controller_forward_key_event):
1505 Modify use of notify_keylisteners in accordance with above
1507 (spi_deregister_controller_key_listener):
1508 New method introduced by refactoring, from
1509 impl_deregister_keystroke_listener.
1510 (impl_deregister_keystroke_listener):
1511 Call spi_deregister_controller_key_listener.
1512 (spi_key_listener_clone):
1513 New method to copy a key listner without doing a 'ref' on the
1514 remote object instance; used to create a notifier list.
1515 (spi_key_listener_data_free):
1516 New method, frees data without unreffing the source.
1518 (spi_key_listener_clone_free): new method.
1519 (spi_key_listener_free):
1520 refactored to call spi_key_listener_data_free.
1522 2002-06-20 Bill Haneman <bill.haneman@sun.com>
1524 * registryd/registry.c: [fix for bug 86048]
1525 (notify_listeners_cb):
1526 Clear CORBA system exceptions which occur when notifying
1527 listeners, before returning to the source of the original event,
1528 since the event source doesn't care if the relayed notify failed.
1529 In other words, don't complain to the atk-bridge if the registry
1530 could not notify all its listeners, that's no fault of the
1531 application and thus should not appear to be an error from the
1532 application's perspective.
1534 * cspi/spi_main.c: [fix for bug 85980]
1536 Replaced use of bonobo_object_dup_ref with call to the wrapper
1537 method, csou_dup_ref (); this silences a compiler warning and
1538 provided more portability.
1540 Ping the registry before return, and restart if necessary.
1542 * cspi/bonobo/cspi-bonobo.c:
1544 New internal method.
1546 Fixed this method to return an object reference, as it should have
1549 * cspi/cspi-lowlevel.h:
1550 Added internal definition for cspi_ping() and fixed
1551 return type of cspi_dup_ref().
1554 2002-06-19 Bill Haneman <bill.haneman@sun.com>
1556 * atk-bridge/bridge.c: [fix for bug 85305]
1557 (spi_atk_bridge_register_application):
1558 New method where the initial application registry calls have been
1559 moved; it allows an application to re-register in response to
1560 certain error conditions (such as a registry restart, see below).
1562 Moved some initialization code to the method
1563 spi_atk_bridge_get_registry, below.
1564 (spi_atk_bridge_get_registry):
1565 New, private accessor function for the Accessibility_Registry
1566 instance. If the registry has not been started before, or has
1567 died (as detected by failure of a CORBA exception), it is
1568 restarted before return, and spi_atk_bridge_register_application
1569 is called again to register with the new bridge instance.
1570 (spi_atk_emit_eventv):
1571 Set registry_died on error; use spi_atk_bridge_get_registry () to
1572 access the registry.
1574 * registryd/registry.c:
1575 (impl_accessibility_registry_register_global_event_listener):
1576 Set listener's event_type_quark to etype.minor instead of
1577 etype.major (fix for bug 84856).
1579 * test/event-listener-test.c:
1580 (report_detail_event):
1581 Change the output string so that user/tester can tell that the
1582 'detail listener' was called instead of the 'generic listener'.
1584 2002-06-18 Bill Haneman <bill.haneman@sun.com>
1586 Fixes for bugs 84900, 84908, 84897, 84898.
1591 Revved version to 1.1.0
1592 (reserving the 1.0.X branch for gnome-2-0-0 branch, this
1593 version is going to HEAD which will be used for gnome-2-0-1 and later.)
1595 * idl/Accessibility_Registry.idl:
1596 (EventListener::notifyEvent):
1597 Removed 'oneway' directive after extensive consulation with
1598 ORBit2 team and others. This means also that unref() of the event
1599 source can and should be done synchronously after emission, rather
1600 than remotely in the client, after servicing the notify call on
1603 NOTE: This change speeds up listener performance considerably, but
1604 introduces new latency on the application side. We may want to
1605 add an event queue to the atk-bridge.
1607 * atk-bridge/bridge.c:
1608 (spi_atk_bridge_focus_tracker):
1609 Do a local unref() on the event source after emission.
1611 * registryd/registry.c:
1612 (desktop_remove_application):
1613 Do an unref() on the event source after emission.
1614 (desktop_add_application):
1615 Do an unref() on the event source after emission.
1616 (notify_listeners_cb):
1617 When relaying an event, don't automatically add the event source
1618 to the local object cache, just CORBA_dup it instead. Likewise,
1619 if this method reenters, release the ref rather than calling
1621 (impl_registry_notify_event):
1622 No longer call remote unref() on the event source after dispatch.
1624 * libspi/eventlistener.c:
1625 (impl_accessible_event_notify_event):
1626 Removed remote unref ()
1628 * cspi/bonobo/cspi-bonobo-listener.c:
1630 We now call cspi_object_new() instead of cspi_object_add() on
1631 receipt of an event; thus we only have an implicit object ref
1632 while the cspi_event method is being executed. If we need to keep
1633 a reference to the object, the listener must call ref() on the
1634 object. Thus also we don't need to call cspi_object_unref() after
1635 invoking the listener callbacks in this method.
1639 New internal API for creating a new cspi object, without adding it
1640 to the object cache.
1642 Now uses cspi_object_new() to create the cspi object instance.
1644 Now checks to see if the object is in the internal object cache,
1645 and adds it if necessary before incrementing its refcount (note
1646 that new objects are added with a refcount of 1).
1647 (report_leaked_ref):
1648 New method which gives some information on leaked object instances
1649 if leak detection is turned on.
1651 * test/event-listener-test.c:
1652 (timing_test_event):
1653 New method, used for testing event delivery timing for special
1654 events of type "object:test". It reports elapsed time and
1655 events/sec every 500 events.
1657 Added a new listener, 'test listener', to check timing of event
1658 receipt as noted above.
1660 Added some timing output here also, reports elapsed time every 100
1663 * test/stress-test.c:
1664 Emit events of type "object:test", for use with "event-listener-test".
1666 * test/test-simple.c:
1667 (global_listener_cb):
1668 Call Accessible_ref() on the event source before calling
1669 validate_accessible, since the validation process does pointer
1670 comparisons on the event source, meaning that the event source
1671 needs to be added to the local object cache first. Any use of
1672 such pointer comparisons between Accessible objects requires that
1673 the caller hold an explicit reference to those objects.
1674 We also must therefore call Accessible_unref() when leaving this method.
1676 2002-06-13 Bill Haneman <bill.haneman@sun.com>
1678 * registryd/deviceeventcontroller.c:
1679 (spi_controller_update_key_grabs):
1680 Fix for #84735, subsequent keygrab listeners not informed of
1681 registration failure.
1684 (spi_base_construct):
1685 Add an assertion on construct, to make sure the GObject passed in
1686 is really a GObject.
1688 Explicitly initialize object->gobj pointer to NULL;
1690 * cspi/bonobo/cspi-bonobo-listener.c:
1691 (cspi_object_add_ref):
1692 New method, can specify whether to dup-ref a bonobo object passed
1693 in if it's newly added to the object cache.
1695 Now calls cspi_object_add_ref with second param of "FALSE". This
1696 prevents us from doing a pointless dup-ref followed by
1697 release-unref for all those cases where the object is already in
1698 our object cache (fix for #85205).
1700 * atk-bridge/bridge.c:
1701 (spi_atk_bridge_idle_init):
1702 Removed this method, we don't need to initialize in an idle
1705 Changed to call spi_atk_register_event_listeners directly, not via an
1706 idle handler. (fix for #81139)
1707 (gnome_accessibility_module_shutdown):
1708 Removed conditional around deregistration of listeners, since we
1709 don't use the idle handler and thus have always registered when
1711 (spi_init_keystroke_from_atk_key_event):
1712 Changed references to Accessibility_KEY_PRESSED to
1713 Accessibility_KEY_PRESSED_EVENT, etc. (fix for #79865).
1715 2002-06-12 Bill Haneman <bill.haneman@sun.com>
1717 (TAGGED AND BRANCHED for gnome-2-0-0 after this commit)
1722 * test/stress-test.c:
1725 (may have been an incomplete commit yesterday?)
1727 2002-06-12 Bill Haneman <bill.haneman@sun.com>
1730 Added target for new stress-test.
1732 * test/stress-test.c:
1733 New test, sends 1000 focus notifies in quick succession.
1735 * test/key-listener-test.c:
1736 Now we report whether a keylistener registration
1737 request succeeded or failed.
1739 * test/event-listener-test.c:
1740 Uncommented some listeners which are now implemented.
1743 2002-06-06 Bill Haneman <bill.haneman@sun.com>
1745 * registryd/deviceeventcontroller.c:
1746 (spi_controller_update_key_grabs):
1747 Fix for #82509, lack of failure notification when
1748 ALL_WINDOWS keygrabs fail due to XGrabKey
1749 failure: we synchronize the server when
1750 registering a passive grab, to make sure we get the
1751 error message before the call returns.
1753 2002-06-03 Bill Haneman <bill.haneman@sun.com>
1755 * test/test-simple.c:
1757 Removed #ifdef KEY_IMPL_WORKS guards.
1758 (test_keylisteners):
1759 Removed #ifdef KEY_IMPL_WORKS guards.
1760 Fixed bug which was causing a hang waiting for a
1761 "press" event (which was already overwritten by a "release"
1762 event) from SPI_generateKeyboardEvent with synth-type of SPI_KEY_SYM.
1764 Added code to set globals 'key_press_received' and
1765 'key_release_received'.
1768 Added section "1.1 API Proposed Additions" which
1769 lists API additions desired for at-spi-1.1 (only one so far).
1770 Updated TODO list a little.
1772 2002-06-02 Bill Haneman <bill.haneman@sun.com>
1774 AT-SPI 1.0 API FINAL: at-spi 1.0 is now
1777 * configure.in: Revved to 1.0.0.
1779 * idl/Accessibility_Registry.idl:
1780 (registerKeystrokeListener):
1781 Added boolean return value.
1783 * registryd/registry.c:
1784 (notify_listeners_cb): Minor fix to debug output.
1786 * registryd/Accessibility_Registry.server.in.in:
1787 Revved version number in OAFIID to 1.0.
1789 * registryd/registryd.c:
1791 Use new OAFIID version.
1793 * cspi/bonobo/cspi-bonobo.c:
1795 Use new OAFIID version.
1801 * atk-bridge/bridge.c:
1803 Use new OAFIID version.
1805 * registryd/deviceeventcontroller.c:
1806 (impl_register_keystroke_listener):
1807 Added CORBA_boolean return value.
1808 (spi_controller_register_device_listener):
1809 Added gboolean return value.
1810 (spi_controller_register_global_keygrabs):
1811 Added gboolean return value.
1812 (spi_key_set_contains_key):
1813 Added implementation for many more control keys,
1814 for instance F1-F12, arrow keys, End, Home, Page_Up,
1816 [TODO: some still not implemented].
1818 * text/screen-review-test.c:
1819 (text_chunk_pad_string):
1820 New function: it provides mapping between coordinate
1821 positions of text chunks and character positions in the
1822 screen-review-line output string.
1823 (text_chunk_to_string):
1824 New function, calls text_chunk_pad_string with various
1825 pad/delimiter characters. Pushbuttons are delimited with
1826 square brackets, Frames with vertical 'pipe' lines, and
1827 other text with double quotes.
1828 (text_chunk_list_to_string):
1829 Calls new function text_chunk_to_string.
1830 (toplevel_composite):
1831 New function to composite layers CANVAS through
1832 POPUP in each toplevel (other layers are composited
1833 across toplevels, i.e. BACKGROUND and OVERLAY).
1834 (review_buffer_composite):
1835 Revise to use new methods.
1841 2002-05-31 Laszlo Peter <laca@sun.com>
1843 * configure.in: add the Xtst libdir to the runpath on Solaris,
1844 since it's not in the default library search path.
1846 2002-05-29 jacob berkman <jacob@ximian.com>
1848 * registryd/Makefile.am (EXTRA_DIST): dist the .in.in
1850 2002-05-29 Bill Haneman <bill.haneman@sun.com>
1852 * test/screen-review-test.c:
1853 (text_chunk_pad_string):
1854 Added method, which pads the string according to the
1855 text bounds of the chunk. It also takes a 3-character
1856 string as a param which indicates the characters to be
1857 used for start, padding, and end delimitation of the chunk.
1858 (text_chunk_to_string):
1859 Changed to use text_chunk_pad_string.
1861 * configure.in: Fixed bug in AC_OUTPUT that was
1862 causing path substitution in Accessibility_Registry.server
1865 2002-05-23 Bill Haneman <bill.haneman@sun.com>
1867 * text/screen-review-test.c:
1868 (guess_string_clip):
1869 New method which attempts a best-guess at clipping
1870 text from components (like Java labels) which don't
1871 actually implement AccessibleText. This inaccurate
1872 clip is based on the assumption that the label is
1873 justified left-and-right, and monospaced.
1874 (text_chunk_get_clipped_string):
1875 We now call guess_string_clip() for text-containing
1876 components that don't implement AccessibleText.
1878 * test/screen-review-test.c:
1879 (review_buffer_get_text_chunk):
1880 We now pull "name" from labels if they do not implement
1881 AccessibleText (i.e. for Java labels).
1882 (get_screen_review_line_at):
1883 Added #ifdef guards CHUNK_LIST_DEBUG for diagnostics.
1886 Replaceded AC_OUTPUT target
1887 registryd/Accessibility_Registry.server with
1888 registryd/Accessibility_Registry.server.in.
1890 * registryd/Accessibility_Registry.server.in:
1891 Removed (this is now a Makefile target).
1893 * registryd/Accessibility_Registry.server.in.in:
1894 Added (source for target above). We now use $(libexecdir) as
1895 prefix for the executable at-spi-registryd.
1897 * registry/Makefile.am:
1898 Now install at-spi-registryd into $(libexecdir), and build .server
1899 file with path (see above).
1901 2002-05-22 Bill Haneman <bill.haneman@sun.com>
1903 * test/screen-review-test.c:
1904 (text_chunk_get_clipped_string):
1905 We now check to see if words fall within clip bounds
1906 before resorting to character-by-character clip bounds testing.
1908 * TODO: Added a section for "2.2 Proposed API Additions".
1910 2002-05-21 Bill Haneman <bill.haneman@sun.com>
1912 * test/screen-review-test.c:
1914 Added a screen review benchmarking and test program to test
1917 * cspi/spi_accessible.c:
1919 Made some of the debug strings passed to cspi_check_ev a
1920 little more specific.
1922 2002-05-21 Padraig O'Briain <padraig.obriain@sun.com>
1924 * test/screen-review-test.c: Fix crashes in debug statements
1926 2002-05-20 Bill Haneman <bill.haneman@sun.com>
1928 * test/screen-review-test.c: Added this file.
1930 2002-05-13 Marc Mulcahy <marc.mulcahy@sun.com>
1932 * atk-bridge/bridge.c: changed "object:state-change" to
1933 "object:state-changed" to match docs.
1935 2002-05-13 Marc Mulcahy <marc.mulcahy@sun.com>
1937 * atk-bridge/bridge.c: Hooked up state-change event details.
1939 2002-05-11 Bill Haneman <bill.haneman@sun.com>
1941 * registryd/registry.c:
1942 Fixed quarking bug in event string parsing; now events with
1943 detail parameters get matched correctly to listeners.
1946 * util/idl/Magnifier.idl: remove.
1948 * util/*.[ch]: Remove.
1949 Magnification utilities and IDL are now in module gnome-mag.
1951 2002-05-10 Bill Haneman <bill.haneman@sun.com>
1953 * registryd/deviceeventcontroller.c:
1954 Fixed bug in grab key conversion which was causing keycode grabs
1955 to be converted to AnyKey grabs.
1958 updated NEWS file to reflect recent spin-off of gnome-mag.
1960 2002-05-09 Marc Mulcahy <marc.mulcahy@sun.com>
1962 * cspi/spi_accessible.c: Added exception checks. Fixed completely
1963 busted AccessibleStateSet_compare. Removed redundant casts.
1965 * cspi/spi-action.c: Removed redundant casts.
1967 * cspi/spi_application.c: Fixed typo in AccessibleApplication_getVersion.
1969 * cspi/spi_component.c: Fixed typos and casting error.
1971 * cspi/spi_editabletext.c: Removed redundant casts.
1973 * cspi/spi_hyperlink.c: Fixed casting and exception checking.
1975 * cspi/spi_hypertext.c: Eliminated redundant casts.
1977 * cspi/spi_image.c: Eliminated redundant casts.
1979 * cspi/spi_registry.c: Eliminated redundant casts.
1980 SPI_deregisterGlobalEventListenerAll () removed retval variable.
1981 * cspi/spi_selection.c: Removed redundant casts.
1982 * cspi/spi_text.c: Eliminated redundant casts. Fixed exception
1983 handling. Screen geometry and text offsets were being returned as 0
1984 on error which is technically valid-- changed these to return -1.
1985 Added marshaller for text boundary types to fix bug with boundary
1986 types being passed incorrectly to atk.
1988 2002-05-09 Bill Haneman <bill.haneman@sun.com>
1991 * cspi/spi_registry.c:
1992 Fixed nasty bug in SPI_registerAccessibleKeystrokeListener
1993 which was uncovered by the recent key changes.
1995 2002-05-09 Bill Haneman <bill.haneman@sun.com>
1997 * test/event-listener-test.c:
1999 Added new test, "event-listener-test";
2000 this code does two things; it benchmarks traversal time
2001 for the accessible hierarchy for the first running accessible
2002 app, and it connects listeners for all supported event types.
2003 It is thus useful as an example event listener and for
2004 diagnostics/debugging of event generation.
2006 2002-05-08 Bill Haneman <bill.haneman@sun.com>
2009 Removed unnecessary dependency on libutil.
2012 Revved micro version: 0.13.1
2014 2002-05-08 Bill Haneman <bill.haneman@sun.com>
2017 Removed util/Makefile from targets.
2020 Removed util subdir from SUBDIRS (temporarily,
2021 pending removal of magnifier-only code
2025 #ifdef-ed out magnifier dependencies, since
2026 magnifier IDL, headers, and binary now live in
2027 module gnome-mag and we don't want at-spi to depend
2028 on gnome-mag. A magnifier demo which can run alongside
2029 simple-at is forthcoming in the gnome-mag module.
2031 NOTE: Split magnifier binary, IDL, and magnification
2032 activation code from at-spi into module gnome-mag.
2034 2002-05-03 Marc Mulcahy <marc.mulcahy@sun.com>
2036 * cspi/bonobo/cspi-bonobo.c cspi/bonobo/cspi-bonobo-listener.c
2037 cspi/bonobo/cspi-bonobo-listener.h: Added copyright notice.
2039 2002-05-03 Bill Haneman <bill.haneman@sun.com>
2042 Revved to version 0.13.0
2044 * idl/Accessibility_Registry.idl:
2045 Changed definition of KeySet from sequence of longs to sequence of
2046 KeyDefinitions, and added KeyDefinition struct.
2047 Required for fix to bug 80616.
2049 * cspi/spi_registry.c: SPI_registerAccessibleKeystrokeListener():
2050 Changed AccessibleKeySet to Accessibility_KeySet marshalling code
2051 to use new definition (see above).
2053 * registryd/deviceeventcontroller.c: handle_keygrab(),
2054 spi_keyset_contains_key():
2055 Changed to make use of new struct; this allows matching based on
2056 string key-name, for instance "Tab". This also allows matching of
2057 composed characters, non-alphanumeric characters in a way that
2058 doesn't involve dependencies on X keysym codes directly, etc.
2060 * test/key-listener-test.c:
2061 Added test for Alt-Tab key using "string" specification of keyset,
2062 and modified one of the tests to use a keycode-based keyset.
2063 Thus this test both tests and demonstrates the creation and use of
2064 keysets of three forms: specified via keycode array,
2065 keysym array, and string array. (The string case only contains a
2066 single string, i.e. a string array of length 1).
2069 Turned on PRINT_TREE option by default. Also fixed a
2070 string-freeing bug in the PRINT_TREE code.
2071 Added a listener to window:minimize events.
2073 2002-05-08 Padraig O'Briain <padraig.obriain@sun.com>
2075 * atk-bridge/bridge.c:
2076 (spi_atk_register_event_listeners) Call atk_add_global_event_listener()
2077 for window:activate and window:deactiveate
2078 (atk_bridge_property_event_listener atk_bridge_signal_listener
2079 atk_bridge_window_event_listener) Tidy debug code
2081 2002-05-02 Marc Mulcahy <marc.mulcahy@sun.com>
2083 * libspi/accessible.c (impl_accessibility_accessible_get_role_name):
2084 Fixed handling for NULL return value from ATK.
2086 * libspi/action.c libspi/component.c libspi/editabletext.
2087 libspi/hyperlink.c libspi/hypertext.c image.c libspi/selection.c
2088 libspi/stateset.c libspi/table.c libspi/text.c libspi/value.c:
2089 Removed redundant casts.
2091 * libspi/table.c (impl_getSelectedRows, impl_getSelectedColumns):
2092 Fixed off by one bug.
2094 *libspi/text.c: removed impl_getRowColAtOffset (unimplemented
2095 function not present in idl)
2097 2002-05-02 jacob berkman <jacob@ximian.com>
2099 * atk-bridge/Makefile.am: make atk-bridge a real module
2101 2002-04-26 Radek Doulik <rodo@ximian.com>
2103 * libspi/stateset.c (spi_init_state_type_tables): fix size of
2104 atk_state_types table
2106 2002-04-22 jacob berkman <jacob@ximian.com>
2109 * libspi/Makefile.am: add deps on the built files to help
2110 automake, and don't version the ORBit typelib
2112 2002-04-19 Padraig O'Briain <padraig.obriain@sun.com>
2114 * cspi/cspi-lowlevel.h cspi/spi-impl.h cspi/spi-listener.h
2115 cspi/spi-private.h cspi/spi-roletypes.h cspi/spi-statetype.h
2116 cspi/spi.h cspi/spi_accessible.c cspi/spi_action.c
2117 cspi/spi_application.c cspi/spi_component.c cspi/spi_editabletext.c
2118 cspi/spi_hyperlink.c cspi/spi_hypertext.c cspi/spi_image.c
2119 cspi/spimain.c cspi/spi_selection.c cspi/spi_streamablecontent.c
2120 cspi/spi_table.c cspi/spi_text.c cspi/spi_value.c
2121 libspi/accessible.h libspi/accessible.h libspi/base.h
2122 libspi/component.h libspi/editabletext.h libspi/hyperlink.h
2123 libspi/hypertext.h libspi/image.h libspi/keymasks.h libspi/libspi.h
2124 libspi/relation.h libspi/remoteobject.h libspi/selection.h
2125 libspi/spi-private.h libspi/statetset.h libspi/table.h
2126 libspi/text.h libspi/util.h libspi/value.h util/mag_client.c
2127 util/mag_client.h util/mag_control.c util/mag_image.c
2128 util/mag_image.h util/magnifier.c util/magnifier.h:
2129 Add missing file headers; standardize existing ones
2131 2002-04-18 Marc Mulcahy <marc.mulcahy@sun.com>
2133 * atk-bridge/bridge.c: Added window event support.
2135 2002-04-18 Michael Meeks <michael@ximian.com>
2137 * libspi/relation.c (impl_getNTargets): impl.
2138 (impl_getTarget): impl.
2140 * libspi/Makefile.am: fix stateset install.
2142 2002-04-17 Bill Haneman <bill.haneman@sun.com>
2145 Started putting useful info in this file.
2147 2002-04-17 Marc Mulcahy <marc.mulcahy@sun.com>
2149 * atk-bridge/bridge.c:
2150 Propagate state-changed notifications to ATs
2152 * cspi/spi_registry.c: update docs to reflect actual behavior of
2153 state-change events.
2155 2002-04-17 Bill Haneman <bill.haneman@sun.com>
2158 Incremented version to 0.12.1
2160 * util/mag_client.h:
2161 Add missing declaration for magnifier_exit,
2162 used by mag_control.c - Forte compiler didn't like
2163 the implicit redeclaration of the function :-(
2166 2002-04-16 Bill Haneman <bill.haneman@sun.com>
2169 Revved version to 0.12 due to API change (see below).
2171 * cspi/spi-roletypes.h:
2172 removed (obsolete) SPI_ROLE_FOCUS_TRAVERSABLE
2173 definition from the inline docs, and added docs
2174 for SPI_ROLE_LAST_DEFINED.
2177 * cspi/spi_streamablecontent.c:
2178 Added missing seek_type parameter to
2179 (so far unused) method,
2180 AccessibleStreamableContent_seek().
2181 [ RT approval JodyG. ]
2184 Fixed docs for SPI_createAccessibleKeystrokeListener.
2186 * cspi/spi_registry.c:
2187 Fixed docs for SPI_KEYSET_ALL_KEYS.
2189 * docs/reference/cspi/at-spi-cspi-sections.txt:
2190 Added a number of missing APIs to SECTIONS.
2192 2002-04-16 Bill Haneman <bill.haneman@sun.com>
2194 * registryd/Makefile.am:
2196 * cspi/bonobo/Makefile.am:
2197 Add $(X_LIBS) to makefiles.
2199 2002-04-15 Bill Haneman <bill.haneman@sun.com>
2202 Revved version to 0.11.
2204 * libspi/component.c:
2205 Added implementation for grabFocus.
2207 * idl/Accessibility_Component.idl
2208 (Accessibility_Component_grabFocus):
2209 Made this method return boolean to indicate success or failure, to
2210 be consistent with cspi and the corresponding ATK method.
2212 * idl/Accessibility_Selection.idl
2213 (Accessibility_Selection_selectAll) :
2214 Made these methods return boolean to indicate success or
2215 failure, to be consistent with cspi and the corresponding ATK methods.
2217 * idl/Accessibility_EditableText.idl
2218 (Accessibility_EditableText_setTextContents,
2219 Accessibility_EditableText_insertText,
2220 Accessibility_EditableText_cutText,
2221 Accessibility_EditableText_deleteText,
2222 Accessibility_EditableText_pasteText):
2223 Made these methods return boolean to indicate
2226 * cspi/spi_editabletext.c:
2227 Made these methods return booleans.
2229 * libspi/selection.c:
2230 * libspi/component.c:
2231 * libspi/editabletext.c:
2232 Connected the boolean returns from ATK
2233 to the server-side code referenced above.
2235 2002-04-14 Bill Haneman <bill.haneman@sun.com>
2237 * idl/Accessibility_Table.idl: Added missing methods,
2238 Accessibility_Table_addRowSelection,
2239 Accessibility_Table_addColumnSelection,
2240 Accessibility_Table_removeRowSelection,
2241 Accessibility_Table_removeColumnSelection.
2244 Added C wrappers for above IDL:
2245 AccessibleTable_addRowSelection,
2246 AccessibleTable_addColumnSelection,
2247 AccessibleTable_removeRowSelection,
2248 AccessibleTable_removeColumnSelection.
2251 Added server-side implementation code for IDL above, connecting
2252 to pre-existing ATK api.
2254 2002-04-13 Marc Mulcahy <marc.mulcahy@sun.com>
2256 * idl/Accessibility_State.idl: Made StateSet inherit from BonoboUnknown.
2258 * libspi/accessible.c: Added implementation fo
2259 Accessibility_Accessible_get_state.
2261 * libspi/libspi.h: Added stateset.h to the list of includes.
2263 * libspi/stateset.c: Fixed broken implementation.
2265 2002-04-13 Bill Haneman <bill.haneman@sun.com>
2268 Added implementation code for Accessibility_Magnifier_exit ().
2270 * util/mag_control.c:
2271 Added test code for above method; you can
2272 now kill an existing magnifier via
2273 ./mag_control q, from the util directory.
2275 * test/key-listener-test.c:
2277 Added a new test, for our key listener API.
2279 2002-04-11 Bill Haneman <bill.haneman@sun.com>
2281 * test/app.c, test/keysynth-demo.c:
2283 Replace use of snprintf with g_snprintf.
2284 (fix for bugzilla 78249)
2286 2002-03-27 Michael Meeks <michael@ximian.com>
2290 * util/Makefile.am (INCLUDES): fix.
2291 (DONT_DIST_SOURCE): don't distribute the
2294 * libspi/Makefile.am (dist-hook): ditto.
2296 2002-03-27 Padraig O'Briain <padraig.obriain@sun.com>
2298 * libspi/hypertext.c:
2299 Fix warnings when yelp is used with atk-bridge
2301 2002-03-21 Michael Meeks <michael@ximian.com>
2303 * libspi/application.c (spi_application_new):
2304 use spi_accessible_construct so we use the AtkObject
2307 2002-03-19 Michael Meeks <michael@ximian.com>
2309 * registryd/registry.c (desktop_remove_application),
2310 (desktop_add_application): clean coding style.
2312 * registryd/desktop.c (spi_desktop_remove_application),
2313 (spi_desktop_add_application): kill re-enterency hazards.
2314 (spi_desktop_dispose): remove bogus redundant cast
2315 obscuring bug; fix bug too.
2316 (spi_desktop_init): make the desktop object immortal.
2318 2002-03-16 Bill Haneman <bill.haneman@sun.com>
2321 Added a #define-guarded tree-traversal step
2322 when enumerating the apps (diagnostic tool).
2324 2002-03-15 Bill Haneman <bill.haneman@sun.com>
2326 * idl/Accessibility_Role.idl:
2327 Added ROLE_DRAWING_AREA which seemed to be missing from the
2330 2002-03-14 Marc Mulcahy <marc.mulcahy@sun.com>
2332 * cspi/spi-roletypes.h cspi/spi_accessible.c
2333 idl/Accessibility_Role.idl libspi/accessible.c: synched up role
2336 * registryd/desktop.c registryd/desktop.h registryd/registry.c:
2337 Added signals to SpiDesktop and callbacks in SpiRegistry to notify
2338 AT when applications are added and removed from the desktop. This
2339 reverts the previous broken implementation using the backing
2340 AtkObject for the SpiDesktop.
2342 2002-03-14 Marc Mulcahy <marc.mulcahy@sun.com>
2344 * registryd/desktop.c: emit the "children-changed::add" and
2345 "children-changed::remove" signals on the backing ATK object for
2346 the desktop so AT can tell when applications are started and shut
2349 2002-03-14 Marc Mulcahy <marc.mulcahy@sun.com>
2351 * cspi/spi_accessible.c: Made role names freeable with SPI_freeString ()
2353 2002-03-14 Marc Mulcahy <marc.mulcahy@sun.com>
2355 * libspi/stateset.c: implemented Accessibility_StateSet_compare ()
2357 * cspi/spi_accessible.c: Implemented c bindings for stateset support
2359 * cspi/state-types.h: synched with IDL and ATK
2361 2002-03-13 Bill Haneman <bill.haneman@sun.com>
2363 * libspi/accessible.c
2364 (impl_accessibility_accessible_get_child_at_index):
2365 Change return value for g_return_if_fail ()
2366 to CORBA_OBJECT_NIL instead of "0" (!)
2368 * registryd/Makefile.am:
2369 * registryd/Accessibility_Register.server.in:
2370 Changed name of executable, "registryd",
2371 to something more informative:
2374 2002-03-13 Michael Meeks <michael@ximian.com>
2376 * atk-bridge/bridge.c (atk_bridge_init): don't register
2377 if we're in a bonobo-component, rather than a bonobo app.
2379 2002-03-13 Michael Meeks <michael@ximian.com>
2381 * atk-bridge/bridge.c (gtk_module_init): split
2382 out body to (atk_bridge_init): here, since otherwise
2383 we get symbol conflicts and oddness when invoked
2384 from (gnome_accessibility_module_init): here (upd.)
2386 2002-03-11 Bill Haneman <bill.haneman@sun.com>
2389 New file. Explicitly allow "build sheriff" putbacks provided
2390 they are tested on Solaris.
2392 * docs/reference/cspi/Makefile.am:
2393 Added '-' to the "cp" command for index.sgml.
2394 ("patch by thomasvs, soon coming to a GUADEC near you")
2397 Incremented version number (0.9.0) for new release.
2398 Changed macro that checks for popt, to better detect
2399 obsolete versions of popt.
2402 Added X_LIBS to AC_SUBST, for applications
2403 that call Xlib API directly.
2406 2002-03-07 Bill Haneman <bill.haneman@sun.com>
2409 Include gdk_pixbuf_x11-2.0 in UTILS_LIBS.
2412 Fix regression caused by hard-coding major
2413 version of gdk_pixbuf_x11; now use $(UTILS_LIBS)
2416 * test/test-simple.c (test_editable_text),
2417 (test_test): revert previous change (error was
2418 a regression in gail which is now fixed).
2420 2002-03-04 Michael Meeks <michael@ximian.com>
2422 * test/test-simple.c (test_editable_text),
2423 (test_text): pass G_MAXINT instead of '-1' for
2424 whole string - is this a good thing !?
2426 * cspi/spi_accessible.c
2427 (Accessible_getRelationSet): fix crasher bug
2428 overwriting the end of the array.
2430 * test/test-simple.c (validate_accessible): free,
2431 not g_free returned relation set.
2433 2002-02-26 Marc Mulcahy <marc.mulcahy@sun.com>
2435 * libspi/stateset.c libspi/stateset.h libspi/Makefile.am:
2436 implemented stateset support
2438 * idl/Accessibility_State.idl: Made necessary changes to
2439 the IDL to support state sets.
2441 2002-02-12 Bill Haneman <bill.haneman@sun.com>
2443 * registryd/deviceeventcontroller.c:
2444 Added implementation for generateMouseEvent.
2446 * cspi/spi_registry.c:
2447 Connected new implementation for generateMouseEvent
2450 2002-02-12 Bill Haneman <bill.haneman@sun.com>
2453 Incremented revision (but no change in public API
2454 outside of 'utils', which are not installed public yet.)
2456 * libspi/component.c:
2457 Changed to use atk_component API for layers and
2458 mdi_zorder, instead of deprecated atk_object API.
2460 Magnification Utility Enhancements:
2463 Added implementation of createZoomRegion, clearAllZoomRegions,
2464 resizeZoomRegion. Added new commandline argument
2465 "--no-initial-region". Note that clearAllZoomRegions doesn't
2466 unmap the old '0' region as it should (yet), and the other
2467 methods only work when creating/resizing a single region,
2468 which is "region 0".
2469 (Code for multiple region support will be added later.)
2472 Now we raise the magnifier window each time it's refreshed;
2473 this will help keep it on top.
2475 * util/mag_client.h:
2476 Added simple wrappers for above, used by mag_control.
2477 For general use, it's recommended to use the bonobo magnifier
2478 control API directly instead of using these wrappers.
2481 Moved ZoomRegionData from magnifier.c to this file.
2483 * util/mag_control.c:
2484 Added some code to exercise new IDL implementations.
2486 2002-02-06 Marc Mulcahy <marc.mulcahy@sun.com>
2488 * libspi/text.c: Provide implementation for getAttributes.
2490 2002-02-04 Bill Haneman <bill.haneman@sun.com>
2493 Incremented revision.
2495 * test/test-simple.c:
2496 Replaced use of deprecated g_main_iteration with
2497 g_main_context_iteration.
2499 2002-01-28 Padraig O'Briain <padraig.obriain@sun.com>
2502 Incremented revision for desktop alpha 2.
2504 2002-01-28 Mark McLoughlin <mark@skynet.ie>
2506 * libspi/remoteobject.[ch]: make RemoteObject and interface rather
2509 * test/simple-at.c: include netinet/in.h.
2511 2002-01-24 Mark McLoughlin <mark@skynet.ie>
2513 * cspi/spi_accessible.c: (Accessible_getRelationSet):
2514 use NULL, not CORBA_OBJECT_NIL.
2516 * libspi/accessible.c:
2517 (impl_accessibility_accessible_get_relation_set):
2518 allocate the sequence correctly.
2520 * libspi/remoteobject.h: kill spi_remote_object_new.
2522 * test/test-simple.c: (validate_accessible): add code
2523 to test relation sets, now all we need is to figure
2524 out how to excercise this code path :/
2526 2002-01-18 Michael Meeks <michael@ximian.com>
2528 * test/test-simple.c
2529 (key_listener_cb): consume the key.
2530 (test_keylisteners): update.
2531 (main): wait for any pending unrefs on events.
2533 * registryd/deviceeventcontroller.c
2534 (spi_controller_update_key_grabs): only re-issue the
2535 grab on a key release.
2536 (spi_device_event_controller_forward_key_event):
2537 refresh the keygrabs before we notify the listeners,
2538 to reduce the X ungrab / re-grab race.
2539 (spi_controller_register_with_devices): remove
2540 XSelectInput - we do that with the gdk_window_ call.
2541 (_spi_controller_device_error_handler): return a value.
2542 s/GDK_DISPLAY/spi_get_display/
2544 2002-01-17 Michael Meeks <michael@ximian.com>
2546 * registryd/deviceeventcontroller.c
2547 (_deregister_keygrab): don't blow out the later
2550 * test/test-simple.c (test_keylisteners): do a
2551 more intelligent validation.
2553 2002-01-14 Michael Meeks <michael@ximian.com>
2555 * atk-bridge/bridge.c
2556 (gnome_accessibility_module_init),
2557 (gnome_accessibility_module_shutdown): impl.
2558 (gtk_module_init): protect vs. double inits.
2559 (add_signal_listener): impl.
2560 (spi_atk_bridge_state_event_listener): kill
2561 (deregister_application): split out of
2562 (spi_atk_bridge_exit_func): here.
2564 2002-01-18 Bill Haneman <bill.haneman@sun.com>
2567 Added caret tracking when using magnifier, and
2568 now use text bounds for focus tracking of text elements, rather than
2569 the component bounds - this is helpful for short text fields in long
2570 table cells, at high magnification.
2572 2002-01-16 Bill Haneman <bill.haneman@sun.com>
2574 * registryd/deviceeventcontroller.c:
2575 Regression fix for keylistener de-registration; global keygrabs
2576 were not being released when deregisterKeystrokeListener was
2577 called in cspi, since
2578 Accessibility_DeviceEventController_deregisterKeystrokeListener
2579 was called with a zero-length keyset. That is because the cspi
2580 method, SPI_deregisterKeystrokeListener, does not take a keyset
2581 parameter but instead should remove all the key grabs held be a
2583 The code in impl_deregister_keystroke_listener was changed to copy
2584 the keylist from the listener instance previously registered with
2585 the DeviceEventController before releasing the grabs.
2587 * registryd/registry.c:
2588 * registryd/deviceeventcontroller.c:
2589 * libspi/spi-private.h:
2591 Changed spelling of "re-enterant" to "re-entrant" globally.
2593 2002-01-16 Bill Haneman <bill.haneman@sun.com>
2595 * test/test-simple.c:
2596 Changed key listeners test - the test was slightly mis-using the
2597 (admittedly poorly documented) SPI_generateKeyboardEvent API.
2598 It now uses '=' as the key event listened to and generated,
2599 relying on a keysym match rather than assuming that keycode 33
2600 is always equal to keysym '!'.
2602 2002-01-15 Bill Haneman <bill.haneman@sun.com>
2605 Changed simple-at to use a specific keyset, rather than
2606 SPI_KEYSET_ALL_KEYS - this helps minimize clashes with the window
2607 manager, desktop, etc.
2609 2002-01-11 Bill Haneman <bill.haneman@sun.com>
2611 * registryd/deviceeventcontroller.c:
2612 Replaced standard X error handler with a special handler that
2613 is non-fatal for failed keygrabs. This works around
2614 problems with keygrab clashes sometimes observed on
2616 Re-instated SPI_DEVICE_TYPE_MOUSE in enum (didn't reinstate
2617 mouse handling code as yet).
2619 2002-01-11 Bill Haneman <bill.haneman@sun.com>
2622 Incremented revision for desktop alpha release.
2625 Fixed a couple of the more glaring errors (still not
2628 2002-01-11 Michael Meeks <michael@ximian.com>
2630 * registryd/deviceeventcontroller.c
2631 (spi_device_event_controller_forward_key_event): kill
2632 XUngrabKey / XKeyGrab race.
2633 (spi_controller_grab_keyboard): rename to
2634 (spi_controller_update_key_grabs): this, and deal
2635 with incremental adding / removing grabs more
2637 (_register_keygrab): ensure we're not pending a remove.
2638 (spi_grab_mask_free): impl.
2639 (spi_controller_register_global_keygrabs): split out
2641 (handle_keygrab): impl.
2642 (_deregister_keygrab): impl.
2643 (spi_controller_deregister_global_keygrabs): impl.
2644 (spi_controller_update_key_grabs): re-issue the grab if
2645 we just recieved a notification.
2647 * test/test-simple.c (key_listener_cb): remove debug.
2649 * registryd/deviceeventcontroller.c
2650 (spi_controller_register_device_listener): after
2651 registering a global keygrab, actualy register it !
2652 don't wait for a timeout; doh !
2654 * registryd/deviceeventcontroller.[ch]: s/DeviceEvent/DE/
2655 to make it more readable / manipulable.
2656 s/grabmask/grab_mask/ s/refcount/ref_count/
2657 s/keyval/key_val/ s/modmask/mod_mask
2659 2002-01-08 Michael Meeks <michael@ximian.com>
2661 * registryd/deviceeventcontroller.c
2662 (spi_controller_register_with_devices): use gdk calls to
2664 (global_filter_fn): implement the filter.
2665 (spi_device_event_controller_check_key_event): rename to
2666 (spi_device_event_controller_forward_key_event): this & upd.
2667 (spi_get_display): replace with GDK_DISPLAY.
2669 * registryd/deviceeventcontroller.c
2670 (spi_controller_deregister_device_listener): unroll into
2671 (impl_deregister_keystroke_listener): here to simplify.
2672 (spi_controller_register_global_keygrabs): split cut and
2673 paste (!) out into (_register_keygrab): here, shorter & sweeter.
2674 (spi_controller_deregister_device_listener): remove.
2675 (impl_register_mouse_listener): remove, no mouse listener
2676 support in at-spi-1.0
2678 * registryd/registry.c
2679 (_device_event_controller_hook): kill.
2680 (spi_registry_init): upd.
2682 * registryd/deviceeventcontroller.c
2683 (spi_device_event_controller_class_init): upd.
2684 (spi_check_key_event): merge into.
2685 (spi_device_event_controller_check_key_event):
2686 here and kill strange static ev init, don't leak
2687 the x_event - nor dynamicaly allocate it.
2689 * registryd/registry-main.c (main): re-direct
2690 timeout to remove strange vtable mess.
2692 * registryd/deviceeventcontroller.c
2693 (remove_listener_cb): impl.
2694 (spi_controller_deregister_device_listener):
2695 fix re-enterancy hazard.
2697 2002-01-07 Michael Meeks <michael@ximian.com>
2699 * registryd/deviceeventcontroller.c
2700 (spi_device_event_controller_new): upd.
2701 (impl_notify_listeners_sync): upd. debug.
2702 (spi_notify_keylisteners): fix re-enterancy hazards,
2703 prettify, remove O(n*n) iteration.
2704 (spi_controller_grab_keyboard): fix iteration.
2705 (spi_check_key_event): re-format to suit coding style.
2706 Clean all the warnings - we're warning free.
2708 * registryd/deviceeventcontroller.h:
2709 * registryd/registry.h: make mutualy referential with
2710 typesafe forward references instead of (!) void pointer
2713 2002-01-11 Michael Meeks <michael@ximian.com>
2715 * cspi/spi_accessible.c (role_names): add a role name
2716 to sync this array with the enum; and make the regression
2719 2002-01-10 Michael Meeks <michael@ximian.com>
2721 * cspi/spi_registry.c (SPI_generateKeyboardEvent):
2722 allow expansion of enumeration & kill warning.
2724 * test/test-simple.c (key_listener_cb): impl.
2725 (test_keylisteners): impl.
2727 * cspi/spi-listener.h: make listener signatures const
2728 on the provided (const) events.
2730 * test/keysynth-demo.c: upd. to const events.
2732 * test/simple-at.c: ditto.
2734 2002-01-11 Bill Haneman <bill.haneman@sun.com>
2737 Rev the version to 0.5 (the previous tarball was named 0.4,
2738 even though the micro number was 3), so we need to rev upwards
2739 again for beta2/"desktop-alpha"
2742 Checked in a demo script, which requires editing before use!
2743 Proceed with caution.
2746 Fixed typo in header which was redefining SPI_ACTION_CLASS.
2748 * cspi/spi_accessible.c:
2749 Add a couple of missing enum initializations, and fix some enum
2752 * cspi/spi_registry.c:
2753 Add comment describing keystring parameter to SPI_generateKeyboardEvent.
2755 * docs/reference/cspi/at-spi-cspi-sections.txt:
2756 Remove/fix a couple of broken document references.
2759 Minor tweaks to the demo. We now (sigh) use Alt-SHIFTLOCK as well
2760 as Alt-Control to listen for commands, since on some systems
2761 Control-Alt may already be grabbed.
2763 2002-01-10 Bill Haneman <bill.haneman@sun.com>
2766 Update version number to 0.4 for Beta2.
2768 * libspi/accessible.c, libspi/accessible.h:
2769 Expose spi_accessible_construct, to enable libgail-gnome
2770 construction from spi_accessible subtype.
2772 * utils/magnifier.c:
2773 Workaround for bug in some non-gnome-compliant window managers
2774 which made magnifier resize improperly.
2776 2002-01-09 Bill Haneman <bill.haneman@sun.com>
2778 * libspi/accessible.c: (spi_accessible_new) :
2779 Move the test for SPI_IS_REMOTE_OBJECT to
2780 spi_accessible_new_return, fixing a bug and compile time warning.
2782 2002-01-08 Michael Meeks <michael@ximian.com>
2784 * registryd/registry.c (parse_event_type): remove strndup.
2786 * libspi/Makefile.am (libspi_la_SOURCES): remove
2787 sources already included in the headers section.
2789 * libspi/util.c: add.
2791 * libspi/spi-private.h: add.
2793 * registryd/registry.c: update to moved list iterators.
2795 2002-01-05 Michael Meeks <michael@ximian.com>
2797 * test/simple-at.c (main): upd. auto-module set to atk-bridge
2799 * test/test-simple.c (main): ditto.
2801 2002-01-04 Michael Meeks <michael@ximian.com>
2803 * libspi/accessible.c (spi_accessible_new): remove 2nd,
2804 redundant construct.
2806 * registryd/registry.c
2807 (get_listener_list): impl.
2808 (impl_accessibility_registry_register_global_event_listener):
2809 re-impl. to simplify using ~, remove dodgy const cast off.
2810 (parse_event_type): constify.
2811 (impl_accessibility_registry_deregister_global_event_listener_all):
2812 re-write, more efficiency and simplicity, kill re-enterancy
2814 (compare_listener_corbaref, compare_corba_objects),
2815 (compare_listener_quarks): define out.
2816 (impl_accessibility_registry_deregister_global_event_listener):
2817 re-write for effiency, and nail re-enterancy hazard.
2818 (impl_accessibility_registry_get_desktop_list): impl.
2819 (re_enterant_list_delete_link): impl.
2820 (re_enterant_list_foreach): impl.
2821 (remove_listener_cb): impl.
2822 (_registry_notify_listeners): kill.
2823 (notify_listeners_cb): impl.
2825 * cspi/spi_registry.c (SPI_freeDesktopList): impl.
2826 (SPI_getDesktopList): impl.
2828 * test/test-simple.c (test_desktop): test the methods.
2830 2002-01-03 Michael Meeks <michael@ximian.com>
2832 * cspi/spi_event.c (SPI_createAccessibleKeySet): dup the
2833 keystrings since we free them
2834 (SPI_freeAccessibleKeySet): in here.
2836 * libspi/accessible.c (spi_accessible_new): kill warning,
2837 wonder what is going on with the constructor here.
2839 2002-03-01 Bill Haneman <bill.haneman@sun.com>
2841 * libspi/accessible.c (spi_accessible_new ()) :
2842 Added check to see if AtkObject is an SpiRemoteObject before
2843 creating an SpiAccessible.
2845 2002-05-01 Bill Haneman <bill.haneman@sun.com>
2847 * registryd/deviceeventcontroller.c (spi_controller_grab_keyboard):
2848 Enable keygrabs using the Control modifier, now that they are
2849 working properly (they were previously disabled).
2852 Change the command keygrab for this demo to "Control+Alt", so as
2853 to conflict with fewer other key commands on the system; this
2854 means that the quit command for "simple-at" is now "Ctrl-Alt-q".
2856 Removed a pointlessly-chatty keylistener for unshifted keys
2857 (shifted keys are still reported).
2859 2002-02-01 Bill Haneman <bill.haneman@sun.com>
2861 * libspi/remoteobject.h:
2862 * libspi/remoteobject.c:
2863 Added definitions for special AtkObject subtype, required for
2864 support of remote components (specifically, used by BonoboControl
2865 accessibility implementation).
2867 2002-01-02 Marc Mulcahy <marc.mulcahy@sun.com>
2869 * cspi/spi.h: synched relation types with ATK
2871 * cspi/spi_accessible.c: Added implementations of
2872 AcccessibleRelation_* methods
2874 * idl/Accessibility_Relation.idl: added getRelationTypeName
2875 method. Synched known relation types with ATK. Allowed for
2876 relation type extension with the RELATION_EXTENDED type.
2878 * libspi/relation.c: Provided implementations for
2879 AccessibleRelation methods.
2881 2002-01-01 Bill Haneman <bill.haneman@sun.com>
2883 API tweaks for today's API 'freeze'.
2886 Added placeholder functions to allow future compatible expansion
2887 of the IDL interfaces.
2889 * idl/Accessibility_Registry.idl:
2890 Changed generateKeyEvent to generateKeyboardEvent. Changed
2891 signature of this method to accept an optional keystring in
2892 parameter (for complex text input synthesis) and changed use of
2893 simple 'boolean' parameter in registerKeystrokeListener to a
2894 struct, EventListenerMode.
2896 * cspi/spi_accessible.c:
2898 * cspi/spi_streamablecontent.c:
2899 Added references to AccessibleStreamableContent interface, and
2900 definition and implementation of AccessibleStreamableContent
2903 * cspi/spi_registry.c:
2905 Changed generateKeyEvent API to generateKeyboardEvent,
2906 taking a new (optional) keystring parameter to support complex
2911 Renamed directory (to better reflect its actual purpose, bridging
2912 from at-spi to ATK). The .so module is also now named
2915 * idl/Accessibility_Hypertext.idl:
2916 * libspi/accessible.c:
2917 * libspi/hypertext.h:
2918 * libspi/hypertext.c:
2919 Changed Accessibility_Hypertext to *not* derive from
2922 * cspi/spi_registry.c:
2923 Added list of legal event type names for 'window' events, which
2924 completes the registry event API.
2926 2001-12-22 Marc Mulcahy <marc.mulcahy@sun.com>
2928 * at-bridge/bridge.c: Added registration for separate
2929 "Atktext:text-changed::insert" and "AtkText:text-changed::delete"
2930 signals. If either of the first two parameters to the generic
2931 bridge signal handler are ints, they are passed on as event
2932 details. This allows an AT to determine what text was inserted.
2934 2001-12-21 Bill Haneman <bill.haneman@sun.com>
2936 * registryd/deviceeventcontroller.c:
2937 Fixed regressions in generateKeyEvent caused by the removal of
2938 gdk_init from registryd; we now use pure X calls to connect to the
2939 display, which makes sense because deviceeventcontroller already
2940 uses a fair bit of X API (should eventually be migrated to a
2941 'portability layer').
2943 * registryd/desktop.c:
2944 Fixed minor regression in spi_desktop_init, changed the way the
2945 desktop name is being set to work with new spi_base API
2946 (gobject-based, rather than AtkObject-based).
2948 * registryd/Makefile.am:
2949 Minor revision of makefile to use XTST_LIBS variable rather than
2950 hard-wiring the Xtst LD_ADD element.
2952 * test/keysynth-demo.c:
2953 Tweaked an output message; added initialization of the
2954 'keystrings' member of the "switch listener" key_set.
2956 * libspi/relation.c:
2957 Squashed compile-time warning.
2959 * libspi/accessible.c:
2960 Cosmetic and formatting fixes, renamed a static method.
2962 2001-12-18 Marc Mulcahy <marc.mulcahy@sun.com>
2964 * libspi/accessible.c
2966 * libspi/application.c
2969 * libspi/component.c
2970 * libspi/editabletext.c
2971 * libspi/hyperlink.c
2972 * libspi/hypertext.c
2974 * libspi/selection.c
2978 * registryd/desktop.c:
2979 Changed SpiBase to contain a GObject pointer rather than an AtkObject
2981 2001-12-17 Bill Haneman <bill.haneman@sun.com>
2983 * idl/Accessibility_Registry.idl:
2984 Added boolean member 'is_text' to DeviceEvent. This is for the
2985 use of key events, and helps prevent ambiguity between composed
2986 key strings and keysym names, since both may potentially be
2987 returned in the 'event_string' member.
2989 * at-bridge/bridge.c:
2990 * registryd/deviceeventcontroller.c:
2991 Use the 'is_text' member when notifying device event listeners.
2992 Knon issue: composed characters are not dealt with correctly by
2993 the global key listener implementation yet.
2995 2001-12-17 Bill Haneman <bill.haneman@sun.com>
2997 * at-bridge/bridge.c:
2998 Namespaced local static methods to spi_atk_bridge_* where
2999 previously named bridge_*, and spi_* elsewhere.
3001 * at-bridge/bridge.c:
3002 * cspi/bonobo/cspi-bonobo-listener.c:
3003 Added demarshalling/conversion for string member of
3004 Accessibility_DeviceEvent to AccessibleKeystroke.
3006 * registryd/deviceeventcontroller.c:
3007 Added code to fill the Accessibility_DeviceEvent key string value
3008 member for global key events (i.e. from XGrabKey), to match
3009 behavior of Accessibility_DeviceEvent from the toolkit key events
3010 from the bridge. Fixed timestamp in global key event notifications.
3013 Added printout of key event's string value to
3014 report_ordinary_key_event, for demo/debugging purposes.
3016 2001-12-15 Bill Haneman <bill.haneman@sun.com>
3018 * idl/Accessibility_Registry.idl:
3019 Removed Accessibility_KeyStroke structure in favor of generic
3020 Accessibility_DeviceEvent structure.
3021 Changed Accessibility_ControllerEventMask from a struct to an
3024 * at-bridge/bridge.c:
3025 Changed APIs to use DeviceEvent structure as above, and removed
3026 bogus casting between these event structures.
3028 * cspi/spi-listener.h:
3029 Added keystring member of AccessibleKeystroke structure, to enable
3030 matching on event "names" rather than only hardware codes and
3034 Added keystrings member of AccessibleKeySet struct, to allow
3035 matching on event names (as above).
3036 Added declarations for SPI_createAccessibleKeySet and
3037 SPI_freeAccessibleKeySet. Due to changes in libspi, we now pass
3038 event modmasks directly as unsigned ints rather than structs with
3039 refcounts, in the DeviceEventController methods.
3041 * cspi/spi_registry.c:
3042 Add SPI_createAccessibleKeySet and SPI_freeAccessibleKeySet methods.
3044 * cspi/spi-roletypes.h:
3045 Added documentation of newly added SPI Roles.
3047 * cspi/bonobo/cspi-bonobo-listener.c:
3048 Changes in support of API changes above.
3050 * libspi/accessible.c:
3051 Converted APIs to use DeviceEvent structure (see IDL changes
3054 * registryd/deviceeventcontroller.c:
3055 Added DEControllerGrabMask structure to track keygrabs not only by
3056 modmask but by keyset as well; this allows us to do "global"
3057 (i.e. X) keygrabs on a per-key or keyset basis rather than always
3058 grabbing on AnyKey and then filtering after-the-fact.
3059 Bugfixes for event filtration mean that we don't get false matches
3060 on SPI_KEY_RELEASED, when only SPI_KEY_PRESSED was requested.
3062 * registryd/deviceeventcontroller.c:
3063 Namespaced a number of static methods to use spi_ prefix. Major
3064 revision to internals of global (i.e. X) key grabs.
3066 * registryd/deviceeventcontroller.h:
3067 Removed keymask_list and added keygrabs_list to
3068 SpiDeviceEventController struct.
3071 Added use of SPI_createAccessibleKeySet API when creating a
3072 listener for only one key. Attach a listener to "shift spacebar
3073 SPI_KEY_RELEASE" as a demonstration. Changed (incorrect) usage of
3074 X key event names to SPI key event names, so that listeners are
3075 registered for (SPI_KEY_PRESSED | SPI_KEY_RELEASED), for instance.
3077 * test/keysynth-demo.c:
3078 Changed (incorrect) use of X key event names (KeyPressed,
3079 KeyReleased) to SPI enums SPI_KEY_PRESSED and SPI_KEY_RELEASED.
3082 2001-12-12 Bill Haneman <bill.haneman@sun.com>
3084 * libspi/accessible.c:
3085 Convert all AtkRole enumerations to Accessibility_Role enums when
3086 getting a role from an AtkObject.
3088 * cspi/spi_accessible.c:
3089 Complete the conversion of Accessibility_Role enums at runtime to
3090 AccessibleRole (SPI_ROLE_*) roles in Accessible_getRole, so that
3091 role enums correctly match those given in spi-roletypes.h.
3092 Re-synchronize the local names list for AccessibleRole_getName ().
3093 AccessibleRole_getName is now deprecated, since it duplicates the
3094 more reliable Accessible_getRoleName.
3095 Added some role types from Accessibility_Role.idl.
3097 * idl/Accessibility_Role.idl:
3098 Added some role types used by AtkRole.
3100 2001-12-12 Bill Haneman <bill.haneman@sun.com>
3103 * cspi/spi_registry.c:
3105 * cspi/cspi-bonobo-listener.c:
3106 Namespaced all methods that did not begin with an "SPI_" or
3107 "Accessible" prefix to "SPI_".
3110 Homogenized internal function namespace to "cspi_" for statics.
3113 Patched tests to use the new CSPI API.
3115 * docs/reference/cspi/at-spi-cspi-sections.txt:
3116 Updated docs to reflect namespace changes, and added a number of
3117 methods to the documentation.
3119 * registryd/registry.c:
3120 Changed use of strings and string hashes in listener event
3121 matching and parse_event_string to use GQuark, which is guaranteed
3124 * registryd/registry.h:
3125 Squashed annoying warning.
3127 * idl/Accessibility_Role.idl:
3128 Extended range of available Accessibility_Role values.
3130 * cspi/spi_accessible.c:
3131 Re-ordered role names.
3133 2001-12-12 Bill Haneman <bill.haneman@sun.com>
3135 * idl/Accessibility_Value.idl:
3136 Revert use of union back to CORBA_double, since the double type is
3137 more efficient and can contain the other types without loss of
3140 * idl/Accessibility_Accessible.idl:
3141 Added method Accessibility:Accessible:getRoleName, to complement
3142 Accessibility:Accessible:getRole.
3144 * cspi/spi_accessible.c:
3146 Added C binding for above, Accessible_getRoleName (), and changed
3147 signature of Accessible_getRole () to return an AccessibleRole.
3149 * cspi/spi-roletypes.h:
3150 Changed AccessibleRole_getName to return a char * instead of a
3151 const char *. This method is now at least temporarily deprecated
3152 in favor of asking Accessibles for their RoleNames directly.
3155 Revert to match Accessibility_Value.idl;
3159 Change signature of AccessibleValue methods to use double rather
3163 * cspi/spi_accessible.c:
3164 Changed Accessible_getRole to return an AccessibleRole enum rather
3165 than a UTF-8 string. The UTF-8 string can still be obtained via
3166 AccessibleRole_getName ().
3168 * test/test-simple.c:
3169 Add test_action. Small fixup to match API change to Accessible_getRole.
3172 Bugfix for get_action_from_servant ().
3174 2001-12-11 Michael Meeks <michael@ximian.com>
3176 * libspi/libspi.h: remove registry.h and
3177 desktop.h, deviceeventcontroller.h
3179 * libspi/Makefile.am: remove registry.[ch],
3180 desktop.[ch], deviceeventcontroller.[ch]
3182 * registryd/Makefile.am: add registry.[ch],
3183 desktop.[ch], rename registryd.c to registry-main.c.
3184 add deviceeventcontroller.[ch]
3186 2001-12-11 Bill Haneman <bill.haneman@sun.com>
3189 Replace setenv() call with putenv ().
3191 * libspi/component.c:
3192 Bugfix in AccessibleComponent_getExtents (),
3195 2001-12-11 Michael Meeks <michael@ximian.com>
3197 * libspi/image.c (impl_getImageExtents): impl.
3198 (spi_image_class_init): upd.
3201 (AccessibleImage_getImageDescription): fix daft bug
3204 * test/test-simple.c (global_listener_cb): update
3205 to only quit if not --poke
3206 (main): catch --poke.
3207 (validate_accessible): upd. dumping, call test_image
3210 * libspi/Makefile.am (IDL_DEPS): fixup the IDL
3213 * idl/Accessibility.idl: update all IDL includes.
3215 * idl/*.idl - rename to namespace - this sucks, blame
3216 mjs' bad decision for oafd.
3218 * test/test-simple.c (create_test_window): add more tests.
3219 (create_tree): split this out.
3220 (validate_accessible): bugfix.
3222 2001-12-11 Michael Meeks <michael@ximian.com>
3224 * cspi/bonobo/cspi-bonobo-listener.c:
3225 (cspi_kestroke_listener_unref),
3226 (cspi_event_listener_unref): impl. undoing previous
3227 homenous environment - for Bill.
3229 * cspi/spi_table.c (long_seq_to_array): use
3232 * cspi/spi_main.c: split out all bonoboish bits into
3235 * cspi/spi-impl.h: upd. typedefs.
3237 * cspi/spi_registry.c: update to lowlevel API,
3238 return booleans to indicate success in some places.
3240 * cspi/spi_event.c: update to lowlevel API.
3242 * cspi/bonobo/Makefile.am: add.
3244 * cspi/bonobo/cspi-lowlevel.h: add
3246 * cspi/bonobo/cspi-bonobo.c: add
3248 * cspi/bonobo/cspi-bonobo-listener.[ch]: impl.
3250 * cspi/Makefile.am: remove spi-listener-impl.[ch],
3251 (SUBDIRS): add bonobo, link in the libs.
3253 * cspi/spi-util.c: kill this file.
3255 * TODO: merge in my bits.
3257 2001-12-11 Michael Meeks <michael@ximian.com>
3259 * test/test-simple.c (test_value, test_table, main):
3260 remove unused variables causing warnings.
3262 * configure.in: cleanup checks - require gail.
3264 2001-12-11 Bill Haneman <bill.haneman@sun.com>
3267 Changed Value interface to use SValue (scalars) rather than
3268 assuming all values are floats. This allows floats, doubles,
3269 longs, shorts, and unsigned values to be manipulated.
3270 Introduced Accessibility:SValue union.
3273 Updated to use new API above, and to work correctly with GValues
3274 of different types in AtkValue.
3277 Updated to use new API above. cspi's API is as yet unchanged.
3280 Updated the Value revision action item.
3282 2001-12-10 Bill Haneman <bill.haneman@sun.com>
3284 * test/test-simple.c:
3285 Added test_table (GtkTreeView widget in test window to follow).
3286 Un-commented test_value, added GtkRange widget.
3287 Added GtkTreeView widget with GtkListStore. It passes regression
3288 test but leaks one SPI object for some reason.
3291 Fixed bug in impl__set_currentValue.
3293 2001-12-10 Michael Meeks <michael@ximian.com>
3295 * cspi/spi_text.c: audit for exception handling,
3296 tolerating NULL object references safely etc.
3298 * cspi/spi_value.c: ditto.
3300 * cspi/spi_table.c (AccessibleTable_getSummary),
3301 (AccessibleTable_getAccessibleAt),
3302 (AccessibleTable_getRowHeader),
3303 (AccessibleTable_getColumnHeader),
3304 (AccessibleTable_getCaption): fix bugs hidden by
3306 (long_seq_to_array): impl.
3307 (AccessibleTable_getSelectedRows),
3308 (AccessibleTable_getSelectedColumns): use it.
3310 2001-12-10 Bill Haneman <bill.haneman@sun.com>
3313 Added a TODO list (rough and short for now).
3315 * cspi/spi_hyperlink.c:
3316 * cspi/spi_hypertext.c:
3317 Fixed macro name typos, and remove use of obsolete macro in
3318 AccessibleHyperlink_getLink.
3320 * cspi/spi_action.c:
3321 * cspi/spi_accessible.c:
3322 * cspi/spi_application.c:
3323 * cspi/spi_component.c:
3324 * cspi/spi_selection.c:
3327 Documentation fixes (removed return values from ref/unref methods).
3329 2001-12-10 Michael Meeks <michael@ximian.com>
3331 * cspi/spi_action.c: audit for exception handling,
3332 tolerating NULL object references safely etc.
3334 * cspi/spi_accessible.c: ditto.
3336 * cspi/spi_component.c: ditto.
3338 * cspi/spi_editabletext.c: ditto.
3340 * cspi/spi_hyperlink.c: ditto.
3342 * cspi/spi_hypertext.c: ditto.
3344 * cspi/spi_image.c: ditto.
3346 * cspi/spi_selection.c: ditto.
3348 2001-12-10 Michael Meeks <michael@ximian.com>
3350 * configure.in: use cspi/libspi.pc.in instead.
3352 * Makefile.am (pkgconfig_DATA): upd. to match.
3354 * test/simple-at.c (report_focus_event): kill hacks around
3355 bad return values, use putenv not setenv
3357 * libspi/desktop.c (impl_desktop_get_child_at_index): don't
3358 fire ChildGone - I killed it.
3360 * libspi/component.c
3361 (impl_accessibility_component_get_extents): remove
3364 * idl/Accessible.idl: kill ChildGone exception.
3366 * cspi/*.[ch]: kill int return from ref / unref.
3368 * cspi/spi_main.c (cspi_object_add_check): fold into
3369 (cspi_object_add): here.
3371 * cspi/spi_component.c (AccessibleComponent_getExtents):
3372 handle exceptions elegantly.
3374 * cspi/spi-private.h (cspi_check_ev_return),
3375 (cspi_return_if_fail): impl.
3377 * cspi/spi_accessible.c: use extensively.
3378 (AccessibleStateSet_equals): add direct compare check.
3380 * cspi/spi_selection.c: tolerate NULL objs, and check
3381 exceptions before return.
3383 * cspi/spi-util.c (cspi_warn_ev): rename to
3384 (cspi_check_ev): this & don't pass ev in; no point.
3386 2001-12-10 Michael Meeks <michael@ximian.com>
3388 * test/test-simple.c: use putenv not setenv
3389 (get_environment_vars): more chatty if you're not using
3392 * test/simple-at.c: do the setenv so more people see the
3395 2001-12-10 Bill Haneman <bill.haneman@sun.com>
3397 * libspi/registry.c:
3398 Changed check of CORBA_environment on notification to be a warning
3399 instead of an error for the moment, since we can recover from this
3400 error when caused by a queued notification from a dead app.
3403 Fixes for spi_value, use G_TYPE_DOUBLE for atk_value values (as
3404 used by all current implementors of AtkValue), and coerce to
3405 CORBA_float. (Proper general case fix may require change to Value.idl).
3407 2001-12-09 Bill Haneman <bill.haneman@sun.com>
3411 * cspi/spi_accessible.c:
3412 Documentation fixes: added user_data params to documentation for
3413 listeners and callbacks.
3415 * cspi/spi_accessible.c:
3416 Changed AccessibleStateSet_compare to return a
3417 StateSet rather than return the difference set into a third parameter.
3420 2001-12-09 Bill Haneman <bill.haneman@sun.com>
3423 Replace use of AM_PROG_XML_I18N_TOOLS macro with AC_PROG_INTLTOOL.
3424 remove 'dnl' comment line from AC_OUTPUT (autoconf doesn't like
3428 Remove subdirectory po from SUBDIRS for now.
3430 * at-bridge/bridge.c:
3431 Beefed up a couple of debug printouts.
3432 One-line fix for signal notification name formatting.
3434 * libspi/accessible.c:
3435 Added assertion to spi_accessible_new ().
3437 * libspi/application.c:
3438 Put #ifdef qualifiers around a printf.
3441 Fixed derivation (from BONOBO_OBJECT to SPI_BASE).
3443 * registryd/Makefile.am:
3445 Replaces use of XML_I18N_MERGE_SERVER_RULE with
3446 INTLTOOL_SERVER_RULE macro.
3449 Added an event listener for several ATK signals, for
3450 testing and debugging. Removed a few g_warnings.
3451 Added test output if focussed item implements the Value interface.
3453 * test/test-simple.c:
3454 Added test_value () function (known not to pass at the moment, so
3455 not actually called yet.
3457 2001-12-08 Michael Meeks <michael@ximian.com>
3459 * at-bridge/bridge.c (bridge_focus_tracker),
3460 (emit_eventv): fix the same ref. leak.
3461 (register_atk_event_listeners): don't leak.
3463 * cspi/spi-listener-impl.c (cspi_event): more
3464 protection from client code.
3466 * test/test-simple.c (test_desktop): unref the app.
3468 * test/Makefile.am: upd. TESTS.
3470 * at-bridge/bridge.c (bridge_exit_func): release the registry.
3472 * test/keysynth-demo.c (keysynth_exit): unref the listeners.
3474 * cspi/spi_accessible.c (Accessible_queryInterface): constify.
3476 * cspi/spi_registry.c: constify in strings.
3477 (deregisterGlobalEventListenerAll): don't release the ref.
3479 * cspi/spi.h: start removing redundant / conflicting
3480 gtkdoc comments, making the API readable at a glance :-)
3482 * cspi/spi_event.c (AccessibleEventListener_unref): impl.
3484 * test/keysynth-demo.c (keysynth_exit, main): upd.
3486 * test/simple-at.c (main, simple_at_exit): upd.
3488 * test/test-simple.c (unutterable_horror): kill.
3489 (utterable_normal_derefs): kill.
3490 (main): upd & do a setenv before gtk_init, so that we
3491 can use memprof - and to save the pain of remembering
3492 this, if we're running under memprof - don't exit.
3494 * cspi/spi_main.c (SPI_exit): return exit status
3496 (SPI_event_quit): impl.
3497 (SPI_event_main): simplify.
3498 (cspi_is_gnome_app): kill.
3499 (SPI_init): kill isGNOMEapp arg.
3501 * at-bridge/bridge.c (register_atk_event_listeners):
3502 re-instate the unref.
3503 (bridge_exit_func): don't re-activate the registry,
3504 protect vs. theoretical re-entry, use the
3505 AT_BRIDGE_SHUTDOWN env. var to determine whether to
3506 assert a clean shutdown - for regression tests.
3508 2001-12-08 Abel Cheung <maddog@linux.org.hk>
3510 * configure.in: Comment out dummy i18n support for now,
3511 otherwise it fails to build.
3512 * idl/Makefile.am: Add Selection.idl and Hypertext.idl to
3513 EXTRA_DIST. They are missing in tarball.
3515 2001-12-07 Michael Meeks <michael@ximian.com>
3517 * util/magnifier.c: kill bonobo activation reg. race.
3519 * libspi/component.c
3520 (impl_accessibility_component_get_extents): make it match
3523 * libspi/registry.c (_registry_notify_listeners):
3524 re-remove X headers & reconcile conflicts.
3525 (spi_listener_struct_free): bad conflict resolve.
3526 (impl_accessibility_registry_register_application):
3527 more bad merging fixed.
3528 (impl_accessibility_registry_deregister_application): ditto.
3529 (spi_registry_new): ditto.
3530 (spi_registry_init): don't have an applications field.
3532 [ merge fixups2 branch to here ]
3533 2001-12-07 Michael Meeks <michael@ximian.com>
3535 * test/simple-at.c (report_focus_event),
3536 (report_focussed_accessible): remove g_warning debug.
3538 2001-12-07 Michael Meeks <michael@ximian.com>
3540 * test/test-simple.c (validate_tree): comment out some checks.
3541 (test_desktop): app now not registered idly - horay.
3543 2001-12-07 Michael Meeks <michael@ximian.com>
3545 * cspi/spi_registry.c
3546 (registerAccessibleKeystrokeListener): clean, stop it leaking
3547 great swathes of memory, and device event controller references.
3548 ensure we always pass valid sequences.
3549 (deregisterAccessibleKeystrokeListener): ditto.
3550 (generateKeyEvent): upd.
3552 * at-bridge/bridge.c (bridge_key_listener): handle
3553 registry dead exception gracefully.
3554 (bridge_focus_tracker, emit_eventv): free ev.
3556 * test/simple-at.c (report_focus_event): fix polarity.
3558 * libspi/application.c (notify_listeners): kill the ev
3559 argument, and make sure we init the ev we use.
3560 (spi_application_object_event_listener): split out a chunk
3561 (get_atk_object_ref): here & fixup.
3562 (reverse_lookup_name_for_toolkit_event): make const.
3563 (spi_application_toolkit_event_listener): fixup, kill leaks
3566 * at-bridge/bridge.c (register_atk_event_listeners):
3567 don't unref the noop object - causes grief.
3569 * libspi/registry.c: remove the X headers.
3570 turn off the debug churn.
3572 * libspi/accessible.c (spi_accessible_new_return): only
3573 release the ref if we are supposed to [doh]
3575 * test/simple-at.c (report_button_press, report_focus_event):
3576 guard vs. unexpected exit.
3578 * at-bridge/bridge.c (gtk_module_init): prune printf.
3579 (bridge_exit_func): fix app unref.
3581 * libspi/Makefile.am: don't install registry or desktop.h
3583 * libspi/*.h: update includes.
3585 * libspi/application.h: don't include ourself, or
3586 other redundant headers.
3588 2001-12-06 Michael Meeks <michael@ximian.com>
3590 * libspi/accessible.c
3591 (get_accessible_from_servant): impl.
3592 Upd. all CORBA impl.s to use it killing cut and paste.
3594 * cspi/spi_main.c (cspi_cleanup): guard vs. double
3596 (SPI_init): register atexit cleanup handler here.
3598 2001-12-06 Michael Meeks <michael@ximian.com>
3600 * at-bridge/bridge.c (gtk_module_init): g_error on
3601 activation exception
3603 2001-12-06 Michael Meeks <michael@ximian.com>
3605 * at-bridge/bridge.c (gtk_module_init): some sort of
3606 confusing merge clash - reverted.
3607 (bridge_idle_init): ditto.
3609 * test/test-simple.c (main, utterable_normal_derefs):
3610 merge from Bill - somehow not committed.
3612 2001-12-06 Michael Meeks <michael@ximian.com>
3614 * libspi/value.c (spi_value_class_init): upd.
3615 (spi_value_finalize): kill.
3617 * libspi/table.c (spi_table_finalize): kill.
3618 (spi_table_interface_new): upd.
3619 (spi_table_class_init): upd.
3620 (get_table_from_servant): impl.
3621 Upd. all CORBA impl.s to use it killing yet more cut and paste.
3623 * libspi/selection.c (spi_selection_finalize): kill.
3624 (spi_selection_interface_new): upd.
3625 (spi_selection_class_init): upd.
3626 (get_selection_from_servant): impl.
3627 Upd. all CORBA impl.s to use it killing yet more cut and paste.
3629 * libspi/relation.c (spi_relation_finalize): kill.
3630 (spi_relation_class_init, spi_relation_new): upd
3632 * libspi/image.c (spi_image_finalize): kill.
3633 (spi_image_class_init): upd.
3634 (spi_image_interface_new): upd.
3635 (get_image_from_servant): impl.
3636 Upd. all CORBA impl.s to use it killing yet more cut and paste.
3638 * libspi/hyperlink.c (spi_hyperlink_class_init): upd.
3639 (spi_hyperlink_finalize): kill.
3640 (spi_hyperlink_new): upd.
3641 (get_hyperlink_from_servant): impl.
3642 Upd. all CORBA impl.s to use it killing yet more cut and paste.
3644 * libspi/hypertext.c (spi_hypertext_interface_new): upd.
3645 (spi_hypertext_finalize): kill.
3646 (spi_hypertext_class_init): upd.
3647 (get_hypertext_from_servant): impl.
3648 Upd. all CORBA impl.s to use it killing yet more cut and paste.
3650 * libspi/editabletext.c (spi_editable_text_finalize): kill.
3651 (spi_editable_text_interface_new): upd.
3652 (get_editable_text_from_servant): impl.
3653 Upd. all CORBA impl.s to use it killing yet more cut and paste.
3655 * libspi/text.c (get_text_from_servant): impl.
3656 All impls - update to use it killing more cut and paste,
3657 also fix bad string returns on duff args ( a somewhat
3658 impossible case to handle - but hey ).
3659 (spi_text_construct): impl.
3660 (spi_text_interface_new): upd.
3661 (spi_text_object_finalize): kill.
3663 * libspi/component.c
3664 (accessibility_component_object_finalize): kill.
3665 (spi_component_class_init): upd.
3666 (get_component_from_servant): impl. helper to kill cut & paste.
3667 (impl_accessibility_component_contains):
3668 (impl_accessibility_component_get_accessible_at_point):
3669 (impl_accessibility_component_get_position):
3670 (impl_accessibility_component_get_extents):
3671 (impl_accessibility_component_get_mdi_z_order):
3672 (impl_accessibility_component_get_layer):
3673 (spi_component_interface_new): upd.
3675 * libspi/action.c (spi_action_finalize): kill.
3676 (spi_action_class_init): upd. inherit from SpiObject.
3677 (spi_action_interface_new): upd.
3678 (get_action_from_servant): impl. helper to reduce cut & paste.
3679 (impl_getKeyBinding, impl_getName, impl_doAction),
3680 (impl_getDescription): Use it everywhere.
3682 * cspi/spi_main.c (get_live_refs): a pointer hash.
3683 (spi_object_hash, spi_object_equal): comment out.
3684 There are issues with CORBA object hashing that need
3687 * libspi/application.c (spi_application_init),
3688 (spi_application_new): upd.
3690 * libspi/accessible.c (spi_accessible_object_finalize): kill.
3691 (spi_accessible_class_init): upd.
3692 s/accessible/object/ in epv methods.
3694 2001-12-05 Bill Haneman <bill.haneman@sun.com>
3696 * at-bridge/bridge.c:
3697 Reorder the bridge initialization into the bridge gtk_module_init,
3698 an immediate call to bridge_register_app, and an idle_add for
3699 register_atk_event_listeners (the only code that *must* wait until
3700 GTK+ is initialized) via bridge_idle_add. Bridge_register_app does
3701 the activation, creates the application's Accessible object, and
3702 queues the bridge_idle_init function. Restored call to
3703 Accessibility_Registry_deregisterApplication().
3704 Prior to making this call we obtain a new reference to the
3705 registry, which is a temporary hack that helps us handle apps that
3706 shut down the bonobo mainloop before we get there.
3708 * libspi/registry.c:
3709 Fix string leakage in debug block, and don't segv if a an app
3710 dies before its event notifications have been propagated.
3713 Modify cspi_check_ev() to call g_warning() rather than g_error(),
3714 as stopgap measure until we get proper exception handling when
3715 objects die during or before interrogation.
3719 Moved use of isGNOMEApp flag from SPI_event_main to SPI_init.
3720 Also changed default value of is_gnome_app to TRUE.
3723 * test/keysynth-demo.c:
3724 Changed use of SPI_init and SPI_event_main to reflect API change above.
3727 Made report_focus_event check the warning value from getName
3728 before reporting on focussed accessible; simplifies handling of
3729 notifications from dead objects.
3731 * test/test-simple.c: (Changes not in this patch since source is
3734 2001-12-05 Michael Meeks <michael@ximian.com>
3736 * registryd/registryd.c (main): protect against
3737 bonobo-activation startup race condition.
3739 * cspi/spi_main.c (cspi_object_add_check): cope
3740 with the exception elegantly.
3742 * idl/Accessible.idl: decl. ChildGone
3744 * libspi/desktop.c (spi_desktop_dispose): impl.
3745 (spi_desktop_class_init): upd.
3746 (spi_desktop_add_application),
3747 (spi_desktop_remove_application),
3748 (abnormal_application_termination): impl.
3749 (impl_desktop_get_child_at_index): re-impl.
3752 (impl_accessibility_registry_deregister_application),
3753 (impl_accessibility_registry_register_application):
3754 kill excessive debug clutter.
3756 * test/test-simple.c (test_misc): test some NULL
3757 tolerance. (main): upd.
3759 * cspi/spi_main.c (cspi_accessible_is_a): a NULL
3760 implements no interfaces - so let's not crash.
3762 * cspi/spi_accessible.c (Accessible_queryInterface): ditto.
3764 * libspi/accessible.c (spi_accessible_new_return): impl.
3765 helper to calm the cut and paste, to cope with
3766 NULL AtkObjects effectively and efficiently, and to kill
3767 the referencing bugs.
3769 * libspi/table.c (impl_getAccessibleAt),
3770 (impl_getRowHeader, impl_getColumnHeader): upd.
3772 * libspi/hyperlink.c (impl_getObject): upd.
3774 * libspi/accessible.c
3775 (impl_accessibility_accessible_get_child_at_index): upd.
3777 * libspi/component.c
3778 (impl_accessibility_component_get_accessible_at_point): upd.
3780 * test/test-simple.c (test_editable_text, test_text): impl.
3783 * cspi/spi_editabletext.c
3784 (AccessibleEditableText_insertText): constify.
3786 * test/test-simple.c (focus_me): make more robust.
3788 * libspi/accessible.c: remove some printfs in methods that
3789 we test and work fine, so we can get a clean tree dump.
3791 * test/test-simple.c (validate_accessible),
3792 (validate_tree): make tree dumping pretty too.
3794 * at-bridge/bridge.c (bridge_signal_listener): upd. so
3795 it builds without debug on.
3797 * test/test-simple.c (validate_accessible): fix the most
3800 * cspi/spi_main.c (spi_object_release): leave the nicely
3801 blanked memory around if in debug mode.
3803 * cspi/spi-listener-impl.c (cspi_event): use add_check.
3805 [committed to fixups2]
3806 2001-12-05 Michael Meeks <michael@ximian.com>
3808 * libspi/editabletext.c
3809 (spi_editable_text_class_init): g_type_class_peek_parent,
3810 not interface peek - so we finalize cleanly.
3812 * libspi/accessible.c (spi_accessible_new): kill debug.
3814 * test/test-simple.c (validate_accessible): fix ref.
3815 leak, print strings before freeing them; sigh, comment a
3816 chunk out due to strangeness.
3817 (validate_tree): unref the child after use.
3819 * cspi/spi_component.c (AccessibleComponent_getLayer):
3820 add missing break statement, switch on zlayer not the
3821 uninitialized retval.
3823 * cspi/spi_main.c (cspi_object_add): add assert, local ref
3824 before (possibly re-entering) remote unref.
3826 * test/simple-at.c (main): unref the desktop.
3828 * cspi/spi_accessible.c (cspi_accessible_is_a): move
3831 * cspi/spi_main.c (cspi_accessible_is_a): here to
3832 isolate bonobo API usage more.
3834 * libspi/registry.c (impl_accessibility_registry_register_application):
3835 prune bogus comment.
3837 2001-12-04 Michael Meeks <michael@ximian.com>
3839 * test/test-simple.c (validate_tree): upd.
3840 IndexInParent check to make it more lucid.
3841 (validate_accessible): dump the tree.
3843 * libspi/accessible.c (de_register_public_ref),
3844 (get_public_refs): impl.
3845 (spi_accessible_new): make more efficient & intuitive.
3846 Now IndexInParent check works.
3848 2001-12-04 Michael Meeks <michael@ximian.com>
3850 * cspi/spi-util.h: remove.
3852 * cspi/spi.h: move SPI_freeString here
3854 * libspi/component.c (impl_accessibility_component_get_layer):
3856 (impl_accessibility_component_get_mdi_z_order): ditto,
3857 return -1 on error - is this ok ?
3859 * test/test-simple.c (test_application): impl.
3861 * cspi/spi_accessible.c (Accessible_getApplication),
3862 (Accessible_isApplication): impl.
3864 * libspi/registry.c (spi_listener_struct_free): release
3865 the CORBA reference too.
3867 * libspi/accessible.c
3868 (impl_accessibility_accessible_get_parent): fix ref leak.
3870 * libspi/registry.c (spi_registry_new): make the registry
3871 immortal - we don't want it to go away ever.
3873 * libspi/application.c
3874 (spi_accessible_application_finalize): impl. cleanup.
3876 * cspi/spi_registry.c
3877 (deregisterGlobalEventListenerAll),
3878 (deregisterGlobalEventListener),
3879 (deregisterAccessibleKeystrokeListener): fix ref leak.
3881 * cspi/spi_main.c (SPI_init): remove redundant ref.
3883 * test/test-simple.c (unutterable_horror): impl. to force a
3888 (impl_accessibility_registry_deregister_application): release
3889 the application when we de-register it.
3891 * at-bridge/bridge.c (bridge_exit_func): comment out shutdown
3892 until we have the infastructure to get it right.
3894 2001-12-03 Michael Meeks <michael@ximian.com>
3896 * libspi/Makefile.am: only build eventlistener.[ch]
3898 * libspi/accessible.c
3899 (impl_accessibility_accessible_get_child_at_index): don't leak.
3901 * at-bridge/bridge.c (bridge_exit_func): cope with an exit
3902 before we hit the idle handler.
3904 * cspi/spi-util.c (cspi_check_ev): g_error is far nicer for
3905 debugging than exit.
3907 * at-bridge/bridge.c (bridge_focus_tracker): fix ref issue.
3909 * libspi/listener.c (impl_notify_event): check source
3910 not NIL before unref.
3912 * libspi/registry.c (impl_registry_notify_event): ditto.
3914 * libspi/eventlistener.c
3915 (impl_accessible_event_notify_event): unref the source.
3917 * libspi/accessibleeventlistener.c
3918 (impl_accessible_event_notify_event): unref the source.
3920 * idl/Event.idl: remove 'hash_id' attribute - of no
3923 * libspi/application.c (notify_listeners): upd list
3925 (spi_application_object_event_listener),
3926 (spi_application_toolkit_event_listener): upd to do correct
3930 (_registry_notify_listeners): update.
3931 (parse_event_type): this method also leaks like a sieve.
3932 (impl_accessibility_registry_deregister_global_event_listener):
3933 fix ETYPE_WINDOW case.
3935 * libspi/application.c
3936 (impl_accessibility_application_register_object_event_listener):
3939 * libspi/hyperlink.c (impl_getObject): fix ref mistake.
3941 * libspi/hypertext.c (impl_getLink): ditto.
3943 * cspi/spi_main.c (cspi_object_add): remove
3944 bogus CORBA_Object_duplicate.
3946 * cspi/spi-listener-impl.c (cspi_event): dup/ref
3949 * cspi/spi_accessible.c
3950 (Accessible_getRelationSet): fix leak / referencing issue.
3952 * cspi/spi_main.c (spi_object_hash, spi_object_equal): impl.
3953 (cspi_object_add, cspi_object_unref): upd.
3954 (spi_object_release, get_live_refs): impl.
3955 (cspi_cleanup): simplify.
3957 * *.[ch]: s/boolean/SpiBoolean/
3959 * cspi/spi_accessible.c (role_names): actualy order so it
3960 corresponds with the enum !
3962 * test/test-simple.c (test_roles): check some role strings
3963 vs. enums to detect offset errors.
3965 2001-12-01 Michael Meeks <michael@ximian.com>
3967 * cspi/spi_main.c (cspi_object_add_check): impl. helper.
3969 * cspi/spi_accessible.c (Accessible_getChildAtIndex):
3971 (Accessible_getChildAtIndex): use cspi_add_check so we
3972 check the ev before using a (possibly) invalid value.
3974 * libspi/accessible.c
3975 (impl_accessibility_accessible_get_parent): don't segv
3978 * at-bridge/bridge.c (gtk_module_init): upd.
3979 (bridge_property_event_listener): don't leak strings
3981 (bridge_state_event_listener),
3982 (bridge_property_event_listener): don't use a static
3983 buffer in case of recursive event emission &
3984 re-enterancy - split out the swathe of cut and paste
3986 (emit_eventv): and fix 2 ref leaks here & comply to the
3988 (bridge_register_app): rename to
3989 (bridge_idle_init): this and kill arg parsing, split
3990 various inits & bonobo-activation registration to module
3991 init time, kill referencing error.
3992 (bridge_exit_func): fix the same leak.
3993 (bridge_focus_tracker): don't leak event structures
3995 (bridge_signal_listener): more leakage and cut & paste
3997 (bridge_key_listener): return the result - FIXME is
3998 this polarity correct ?
3999 (accessibility_keystroke_from_atk_key_event): rename
4000 (accessibility_init_keystroke_from_atk_key_event): and stop
4002 (gtk_module_init): return a value - not that it is checked by
4004 (bridge_key_listener): register my horror at casting between
4005 IDL defined structs.
4006 (bridge_get_registry): kill - not used.
4008 * cspi/spi_accessible.c (Accessible_getRole): make return const.
4010 * test/test-simple.c (test_roles): impl.
4011 (test_desktop, validate_accessible, validate_tree): impl.
4013 * cspi/spi_accessible.c (role_names): fixup bogus
4014 MAX_ROLES setup, make constants const for efficient linkage
4015 (AccessibleRole_getName): conform to coding style, make
4018 2001-11-30 Michael Meeks <michael@ximian.com>
4020 * cspi/spi.h: add missing prototype.
4022 * libspi/registry.c (spi_listener_struct_new): fix sig.
4024 * test/Makefile.am: add test-simple
4026 * test/test-simple.c: add
4028 * test/test.sh: add.
4030 * cspi/spi_main.c (SPI_init): make SPI_inited module global,
4032 * at-bridge/bridge.c (gtk_module_init): don't do an idle init,
4033 do it straight - since otherwise we often get an activation race.
4035 [ work before Bill duplicated a chunk of it ... ]
4036 2001-11-30 Michael Meeks <michael@ximian.com>
4038 * libspi/keystrokelistener.c
4039 (spi_keystroke_listener_class_init): fixup arg
4042 * libspi/eventlistener.c
4043 (spi_event_listener_class_init): ditto.
4045 * tests/test.sh: add.
4047 * cspi/spi-listener-impl.h: update macros.
4049 * cspi/spi-listener-impl.c
4050 (cspi_event_listener_remove_callback): add
4051 correct pre-conditions.
4053 * cspi/spi_main.c (SPI_exit): guard vs. double
4054 exits, exit the mainloop nicely.
4055 (SPI_event_main): make more sense.
4056 (SPI_init): move the atexit evilness here so we
4057 always do it (yuck).
4058 (SPI_event_main): upd.
4060 * test/simple-at.c: update for listener changes.
4062 * registryd/registryd.c (main): prune kruft.
4064 * libspi/libspi.h: upd.
4066 * libspi/eventlistener.[ch]: rename broken macros.
4068 * libspi/accessibleeventlistener.[ch]: remove.
4070 * libspi/*.[ch]: IS_SPI_... -> SPI_IS_...
4072 * test/test-simple.c: Add - automated tests.
4074 * cspi/spi-listener-impl.c (cspi_event),
4075 (cspi_key_event): add user_data to invoke.
4076 (cspi_keystroke_listener_finalize): impl.
4077 (cspi_keystroke_listener_class_init): upd.
4080 (createAccessibleEventListener),
4081 (AccessibleEventListener_addCallback),
4082 (createAccessibleKeystrokeListener),
4083 (AccessibleKeystrokeListener_addCallback): upd.
4085 * libspi/deviceeventcontroller.c
4086 (spi_device_event_controller_check_key_event): add public proto.
4089 (impl_accessibility_registry_deregister_global_event_listener):
4090 always init listeners.
4091 (_registry_notify_listeners): yes it is.
4093 * cspi/spi-listener-impl.c (cspi_key_event):
4095 (cspi_event_listener_finalize): impl.
4096 (cspi_event_listener_class_init): hook up.
4097 (event_handler_new, event_handler_free),
4098 (event_list_remove_by_callback): impl.
4099 (cspi_event_listener_remove_callback),
4100 (cspi_keystroke_listener_remove_callback),
4101 (cspi_keystroke_listener_add_callback),
4102 (cspi_event_listener_add_callback): upd.
4104 * libspi/keystrokelistener.c
4105 (keystroke_listener_object_finalize): kill
4106 (spi_keystroke_listener_class_init): upd.
4107 (spi_keystroke_listener_add_callback),
4108 (spi_keystroke_listener_remove_callback): kill,
4110 (impl_key_event): prune drasticaly.
4112 * libspi/eventlistener.c
4113 (spi_event_listener_add_callback),
4114 (spi_event_listener_remove_callback): kill, use
4116 (impl_accessible_event_notify_event): upd.
4117 (spi_event_listener_object_finalize): remove.
4119 * libspi/Makefile.am: use eventlistener.[ch]
4121 2001-12-04 Bill Haneman <bill.haneman@sun.com>
4123 * libspi/registry.c (_registry_notify_listeners):
4124 Changed listener loop iteration to use preferred convention.
4125 Got rid of string memory leaks caused be calling g_strconcat
4126 inside function calls.
4128 * libspi/registry.c (parse_event_type):
4129 Stopped g_strconcat memory leaks, free the g_strsplit return,
4130 g_strdup the split pieces when used, etc.
4132 2001-12-04 Bill Haneman <bill.haneman@sun.com>
4135 Change method 'compare' to return a 'difference set' rather than
4136 taking a StateSet as an out parameter (more Java-friendly).
4138 * idl/Accessible.idl:
4139 Added CORBA struct 'BoundingBox', to faciliate API changes below:
4141 * idl/Component.idl:
4143 Changed methods 'getExtents' and 'getImageExtents' in these
4144 interfaces to return a BoundingBox structure.
4145 (getPosition and getSize are redundant and possibly should be
4146 removed, rather than creating a corresponding Point struct.)
4148 * cspi/spi_component.c:
4149 Modify implementation of getExtents to reflect the above IDL
4154 Add (missing) AccessibleImage_getExtents () API.
4156 * docs/reference/cspi/at-spi-cspi-sections.txt:
4157 Added AccessibleImage_getImageExtents () to docs.
4159 2001-12-03 Bill Haneman <bill.haneman@sun.com>
4161 * idl/Component.idl:
4162 Added two methods, getLayer () and getMDIZOrder (), to reflect
4163 the new ATK methods atk_object_get_layer and
4164 atk_object_get_mdi_z_order. (Which arguably should be part of the
4165 AtkComponent API and AtkObject). Also added an enum,
4166 ComponentLayer, for the first method's return value.
4168 * libspi/component.c:
4169 Added implementations for these methods.
4171 * cspi/spi_component.c:
4173 Added cspi binding methods for above,
4174 AccessibleComponent_getLayer() and
4175 AccessibleComponent_getMDIZOrder().
4176 Added cspi enum 'AccessibleComponentLayer'.
4178 * docs/reference/cspi/at-spi-cspi-sections.txt:
4179 Added above methods to docs.
4183 Changed typedef for 'boolean' type (and all references to it) to
4184 SPIBoolean, to avoid keyword clashes with C++.
4187 Changed usages of 'boolean' to SPIBoolean.
4189 * test/keysynth-demo.c:
4190 Changed usages of 'boolean' to 'gboolean' (since this is a gnome
4191 app), except where SPIBoolean is required by the callbacks API.
4193 2001-12-02 Bill Haneman <bill.haneman@sun.com>
4195 * cspi/spi_registry.c:
4196 Removed obsolete X event loop for passive keygrabs (which now
4199 * registryd/registryd.c:
4200 Removed unnecessary call to gdk_init() [cruft]. This also allows
4201 removal of requisite gdk-2.0 from REGISTRYD_LIBS/CFLAGS in
4204 2001-11-28 Bill Haneman <bill.haneman@sun.com>
4206 * docs/reference/cspi:
4207 Included docs for SPI_freeString in generated documentation.
4210 Renamed spi_freeString to SPI_freeString, for consistency. Added
4211 documentation for this function.
4214 Renamed spi_freeString to SPI_freeString, for consistency.
4215 Removed obsolete method declaration string_from_corba_string.
4217 * test/keysynth-demo.c:
4218 Small tweak to comments.
4221 Stopped leaking the strings returned from CSPI.
4223 2001-11-28 Bill Haneman <bill.haneman@sun.com>
4225 Merged Michael's branch (see his ChangeLog entries below).
4227 * at-bridge/bridge.c: Explicitly hold a ref to the registry while
4228 bridge is alive, release on exit.
4230 * cspi/spi-listener-impl.c (cspi_event_listener_add_callback):
4231 Fix type check macro.
4234 Added AccessibleKeystrokeListener_unref() method to reduce leakage.
4237 Added is_gnome_app static, and method cspi_is_gnome_app(),
4238 so we can call the appropriate shutdown routine at exit in SPI_exit.
4240 * cspi/spi_main.c (cspi_object_ref):
4241 Duplicate the corba object passed in, since we're keeping it around.
4243 * cspi/SPI_exit.c, cspi_cleanup:
4244 Moved the releasing of the live refs to its own function, so we
4245 can put it in g_atexit (). Call the appropriate shutdown API
4246 depending on whethe calling client is a gnome app or not
4247 (bonobo_main_quit or CORBA_ORB_shutdown).
4249 * cspi/spi_registry.c (deregisterGlobalEventListenerAll):
4250 Unref the listener when this method is called, after
4251 deregistration. Updated the API docs to note this behavior.
4253 * libspi/accessible.c (impl_get_parent, impl_get_child_at_index):
4254 Bugfixes: Ref the bonobo object when returning a parent or child
4255 reference, or an AccessibleRelation. Generally made sure
4256 BonoboObject refcount is incremented whenever we return an
4259 * libspi/accessibleeventlistener.c (spi_event_listener_class_init):
4260 Fixed typo/bug in signal declaration.
4262 * libspi/accessibleeventlistener.h:
4265 * libspi/application.c (spi_application_new):
4266 Fixed leak in initialization.
4269 Remembered to increment bonobo-object refcount when returning
4270 children (applications) from desktop object.
4271 Added (empty) finalize method.
4273 * libspi/deviceeventcontroller.c:
4274 Hold a ref to listeners inside DEControllerKeyListeners.
4275 Added dec_key_listener_free() method. Use prepend instead of
4276 append in key_listener list. Fixed some refcount madness and
4277 leaks in the listener registration/deregistration - deregistration
4278 now calls dec_key_listener_free() on listeners, and on the
4279 temporarily constructed dec_key_listener() used to perform the search/match.
4281 * libspi/hypertext.c (spi_hypertest_finalize):
4282 Fixed 'double unref' of AtkObject held by parent SpiAccessibleText
4283 class. Also fixed spi_hypertext_interface_new() and
4284 SpiHypertextClass. Fixed a couple of paren-whitespace formatting bugs.
4286 * libspi/hypertext.h:
4287 Removed pointless and duplicate AtkObject pointer from
4290 * libspi/keystrokelistener.c:
4291 Fixed incorrect type of keystroke_listener_parent_class,
4292 renamed keystroke_listener_object_finalize to
4293 spi_keystroke_listener_object_finalize.
4294 Fixed typo in signal declaration
4295 (spi_keystroke_listener_class_init).
4297 * libspi/registry.c:
4298 Added funcsions spi_listener_struct_new() and
4299 spi_listener_struct_free() to help with memory management issues.
4300 We also now use these methods instead of gnew + poking stuff into
4301 the struct, and to decrement listener counts/free the listeners
4302 when deregistering them.
4303 Fix more refcount bugs in getDesktop() and
4304 getDeviceEventController().
4307 De-ref the desktop after enumerating the applications. Explicitly
4308 decrement the refcounts on the created listeners on exit (using
4309 _unref for keystroke listeners, and via the
4310 deregisterGlobalEventListenerAll command for other event
4313 2001-11-27 Michael Meeks <michael@ximian.com>
4315 * cspi/spi-listener.h: fixup enum.
4317 2001-11-27 Michael Meeks <michael@ximian.com>
4319 * cspi/spi-listener-impl.c (cspi_event_listener_new),
4320 (cspi_keystroke_listener_new): Use the cspi variants.
4322 2001-11-26 Michael Meeks <michael@ximian.com>
4324 * test/keysynth-demo.c: fix 2 compile warnings, missing
4327 * test/simple-at.c (report_focussed_accessible),
4328 (report_focus_event, report_button_press),
4329 (check_property_change, is_command_key),
4330 (report_ordinary_key_event, report_command_key_event): upd.
4332 * util/mag_client.h: include pre-requisites.
4334 * libspi/accessibleeventlistener.c
4335 (spi_event_listener_object_finalize): free any lingering
4338 * libspi/keystrokelistener.c
4339 (keystroke_listener_object_finalize): ditto.
4341 * cspi/spi-listener-impl.[ch]: Add to implement cspi style
4342 callbacks, with cspi types.
4344 * cspi/spi_event.c (createAccessibleEventListener): chain to
4345 (AccessibleEventListener_addCallback): here.
4346 (createAccessibleKeystrokeListener): chain to
4347 (AccessibleKeystrokeListener_addCallback): here.
4349 * libspi/keystrokelistener.c
4350 (spi_keystroke_listener_class_init): add signal.
4351 (impl_key_event): emit the event.
4352 (boolean_handled_accumulator): impl.
4353 (marshal_BOOLEAN__POINTER): add, gack.
4355 * libspi/accessibleeventlistener.c
4356 (spi_event_listener_class_init): add signal.
4357 (impl_accessible_event_notify_event): emit the signal &
4358 make the loop efficient.
4359 (spi_event_listener_add_callback): prepend the callback.
4361 * libspi/accessibleeventlistener.h: add an 'event' signal,
4362 decl type on callback.
4364 * libspi/keystrokelistener.h: ditto.
4366 * cspi/spi-listener.h: make methods typesafe and
4367 make them use the new event typedefs.
4369 * test/simple-at.c (report_focussed_accessible):
4370 include mag_client.h
4371 Use *(void *)text_interface not the other thing.
4373 * configure.in: add gtk to registryd bits - since we use
4376 * util/magnifier.c: include libbonobo.h
4378 2001-11-25 Bill Haneman <bill.haneman@sun.com>
4380 * test/keysynth-demo.c:
4381 Turned this into a simple scanning keyboard, to demonstrate the
4382 use of g_timeout_add () as a means of creating timers for
4383 scanning, and the use of GtkStyle for visually indicating when
4384 virtual keyboard elements are selected.
4386 keysynth-demo now listens to any keyboard keys with zero-valued
4387 keycodes (i.e. 'unused' keys) and interprets them as
4390 Reworked the shiftlatch code so that shift-down state isn't held
4391 for long periods (it's only synthesized immediately prior to
4392 the keysynth event it's modifying). Note that shiftlatch in this
4393 demo is a convenience, not intended to take the place of AccessX
4394 which is the better choice for getting 'sticky' modifier keys.
4396 * libspi/deviceeventcontroller.c:
4397 * at-bridge/bridge.c:
4398 * cspi/spi_registry.c:
4399 Removed some debug print stuff, and put other verbosity in #ifdef
4404 Implemented some more of the magnifier IDL for the simple
4405 magnifier: namely, getZoomRegionParams.
4406 Added mag_x and mag_y members to MagnifierData struct, aid of this
4408 Added GtkWindow::realize signal handler to magnifier, to keep it
4409 from receiving keyboard focus from the WM.
4411 2001-11-23 Mark McLoughlin <mark@skynet.ie>
4413 * cspi/spi-private.h: my guess at what michael forgot
4414 before he ran off to NZ :-)
4416 2001-11-23 Michael Meeks <michael@ximian.com>
4418 * cspi/spi_event.c (AccessibleEventListener_removeCallback):
4419 comment out non existant method invoke so we link.
4421 * cspi/spi-util.c (spi_warn_ev): conform to gtk+ style,
4422 use bonobo_exception_get_text for more friendly warnings.
4424 * cspi/spi.c (Obj_Add): move into spi_main & rename
4425 spi_object_add; kill spi.c
4427 * cspi/spi_registry.c
4428 (deregisterGlobalEventListener),
4429 (deregisterGlobalEventListenerAll),
4430 (registerGlobalEventListener): fix exception leaks.
4432 * cspi/spi_main.c (spi_exception): impl. helper, so we
4433 don't leak exceptions.
4435 * cspi/spi_selection.c
4436 (AccessibleSelection_deselectSelectedChild): return the
4439 * cspi/spi_main.c (spi_ev): impl; hack - gack.
4440 (spi_registry): ditto.
4441 (SPI_init): guard against double inits.
4443 * cspi/*.c: use spi_ev (), and spi_registry () where
4444 appropriate - a temporary hack until we have something
4445 better. Use spi_object_add
4447 2001-11-22 Michael Meeks <michael@ximian.com>
4449 * cspi/Makefile.am: re organise, install the headers.
4451 * cspi/*.h: add G_BEGIN/END_DECLS
4453 2001-11-22 Bill Haneman <bill.haneman@sun.com>
4456 Added non-preemptive keylistener for key events with no modifiers
4457 and shift-only modifier.
4459 * libspi/keystrokelistener.c:
4460 Removed some verbose diagnostics printout.
4462 * cspi/spi_registry.c:
4463 Fixed a bug that caused all key listeners to be registered as
4466 * libspi/deviceeventcontroller.c:
4467 Fixed bug that caused XGrabKey (preemptive key grab) to be called
4468 for non-preemptive key masks.
4471 2001-11-22 Bill Haneman <bill.haneman@sun.com>
4473 * docs/reference/idl/at-spi-idl-docs.sgml:
4474 * docs/reference/idl/at-spi-idl-sections.txt:
4475 * docs/reference/idl/at-spi-idl-overrides.txt:
4476 Added missing files.
4478 * docs/reference/Makefile.am:
4479 removed idl from SUBDIRS until we can figure a way to get gtk-doc
4480 to scan the IDL files :-(
4485 Added .cvsignore files.
4487 2001-11-21 Bill Haneman <bill.haneman@sun.com>
4489 * libspi/deviceeventcontroller.c:
4490 * libspi/keystrokelistener.c:
4492 * cspi/spi_registry.c:
4493 Added filters for KeySets, KeyEventSeq, and event types to key
4494 event dispatching, so listeners should only receive those events
4495 that they requested :-)
4497 2001-11-21 Bill Haneman <bill.haneman@sun.com>
4502 * docs/reference:Makefile.am:
4503 * docs/reference/cspi:
4504 * docs/reference/cspi:Makefile.am:
4505 * docs/reference/cspi:tmpl:
4506 * docs/reference/cspi:tmpl:*.sgml:
4507 * docs/reference/idl:
4508 * docs/reference/idl:Makefile.am:
4509 * docs/reference/idl:at-spi-idl-sections.txt:
4510 * docs/reference/idl:at-spi-idl-docs.sgml:
4511 * docs/reference/idl:tmpl:
4512 * docs/reference/idl:tmpl:*.sgml:
4514 Restructured docs directory to allow separate 'reference' docs
4515 section, and forked idl and cspi docs. Added the sgml template
4516 files to CVS. Added the first sections/structural sgml for the
4519 2001-11-21 Laszlo Peter <laca@ireland.sun.com>
4521 * configure.in, libspi/Makefile.am: find libXtst.
4523 2001-11-21 Michael Meeks <michael@ximian.com>
4525 * test/accessx-gui.c: s/spi_value/value/ - doh.
4527 * libspi/base.[ch]: add.
4529 2001-11-18 Bill Haneman <bill.haneman@sun.com>
4531 * idl/Accessible.idl:
4532 * idl/Application.idl:
4535 Started gtk-doc cleanup on IDL.
4537 * libspi/deviceeventcontroller.c:
4538 Added and connected non-preemptive key notification from the
4539 toolkits (in addition to the pre-emptive support from XServer
4540 which we had before, but which causes 'focus flashing'). Filters
4541 are presently limited to key modifiers and global/non-global,
4542 KeySets are presently ignored, as are KeyEvent masks.
4544 Fixed naughtiness in dec_key_listener_new(), we copy the CORBA
4545 structs into the persistant structure rather than just storing
4546 pointers to things that might not persist across servant
4549 The XGrabKey call now does async keygrabs, because synchronous
4550 ones were deadlocking with GDK_event code in a very nasty way.
4552 Added boolean to internal method notify_keylisteners, to indicate
4553 whether the event came from the 'toolkit source' or the 'global
4554 (XServer) source' - this is used in the notification process to
4555 determine which listeners to send the event to.
4557 deviceeventcontroller.c is now warning-free.
4559 * libspi/registry.c:
4560 Fixed regression in application de-registration.
4561 Also fixed some really brain-dead weirdness having to do with
4562 event dispatching - event structs are now duplicated before being
4563 re-marshalled in the dispatch to listeners. This also fixes a
4564 Solaris build problem.
4567 2001-11-20 Michael Meeks <michael@ximian.com>
4570 (impl_accessibility_registry_deregister_global_event_listener):
4573 * libspi/deviceeventcontroller.c
4574 (spi_device_event_controller_check_key_event): return
4575 FALSE on no virtual method.
4577 * libspi/*..h: make includes work on a correctly pathed install.
4579 * libspi/*.h: include glib/gmacros.h, use G_BEGIN / END _DECLS.
4581 * libspi/application.h: kill unused ( and whacked out )
4582 gboolean *spi_application_set_id (AtkObject *app, long id);
4584 2001-11-20 Michael Meeks <michael@ximian.com>
4586 * libspi/*.[ch]: further convert to bonobo's type func
4587 macros, remove redundnant casts etc.
4589 * libspi/text.c s/accessibility_text/spi_text/g,
4590 re-order to de-cruft.
4592 * libspi/hypertext.c: re-order to kill a huge slew
4593 of redundant forward decls.
4595 * libspi/relation.c: ditto.
4597 * libspi/image.c: ditto.
4599 * */.cvsignore: update
4601 2001-11-20 Michael Meeks <michael@ximian.com>
4603 * libspi/deviceeventcontroller.c
4604 (_controller_register_with_devices): use g_getenv,
4605 kill stdlib.h include.
4607 * libspi/keystrokelistener.c
4608 (spi_keystroke_listener_get_type): kill
4609 (spi_keystroke_listener_class_init),
4610 (spi_keystroke_listener_init): rename to this.
4612 * libspi/text.c (impl_getAttributes): fix warning / bug.
4614 * libspi/*.[ch]: more headers, includes and over commenting.
4616 2001-11-20 Michael Meeks <michael@ximian.com>
4618 * libspi/*.[ch]: fixup headers, includes and over commenting.
4620 * libspi/image.c (impl__get_imageDescription): const
4621 correctness warning fix. remove redundant casting.
4623 * libspi/table.c (impl_getRowDescription): ditto.
4624 (impl_getColumnDescription): ditto.
4626 * libspi/libspi.h: add.
4628 2001-11-19 Michael Meeks <michael@ximian.com>
4630 * libspi/editabletext.c (impl_setAttributes): fix warnings.
4632 * libspi/component.c (accessibility_component_get_type):
4633 rename to (spi_component_get_type): and macroify.
4634 (accessibility_component_init): rename to
4635 (spi_component_init): this
4636 (accessibility_component_class_init): rename to
4637 (spi_component_class_init): this
4639 * libspi/action.c (spi_action_get_type): kill, use the macro.
4641 * libspi/deviceeventcontroller.c (_compare_listeners): re-order
4644 * libspi/application.c (spi_application_object_event_listener),
4645 (impl_accessibility_application_register_object_event_listener):
4646 warning fixes / const understanding updates.
4648 * libspi/accessible.c (impl_accessibility_accessible_get_relation_set):
4651 2001-11-18 Bill Haneman <bill.haneman@sun.com>
4653 * libspi/spi_accessible.c: Added docs and C bindings for
4654 AccessibleStateSet. (No implementations yet). Documentation
4655 coverage for C bindings now 100%. Made docs for event listeners
4660 boolean notifyListenersSync (in DeviceEventListener listener,
4661 in DeviceEvent event);
4663 oneway void notifyListenersAsync (in DeviceEventListener listener,
4664 in DeviceEvent event);
4666 Added DeviceEventListener and DeviceEvent structs (may deprecate
4667 KeyStroke and KeystrokeListener in favor of this generic
4668 event/listener framework for devices).
4670 * libspi/deviceeventcontroller.c:
4672 Changed some key listener code to take masks, etc., and paved the
4673 way for integration of toolkit/non-preemptive key events. Changed
4674 signatures of some internal methods.
4676 * at-bridge/bridge.c:
4677 Fixed regression connecting to interface signals, apparently
4678 caused by GTK+ changes.
4680 Added an internal bridge_state_listener to deal with
4681 property-change:accessible-state signals.
4683 Changed the key_listeners GList to store structs (including masks,
4684 etc.) instead of just CORBA_Objects (required for full
4685 implementation of key listener API).
4687 Connected the bridge to all currently supported Atk signals.
4688 Events now supported:
4689 object:property-change
4690 object:property-change:accessible-name
4691 object:property-change:accessible-state
4692 object:property-change:accessible-description
4693 object:property-change:accessible-parent
4694 object:property-change:accessible-value
4695 object:property-change:accessible-role
4696 object:property-change:accessible-table-caption
4697 object:property-change:accessible-table-column-description
4698 object:property-change:accessible-table-column-header
4699 object:property-change:accessible-table-row-description
4700 object:property-change:accessible-table-row-header
4701 object:property-change:accessible-table-summary
4702 object:children-changed
4703 object:visible-data-changed
4704 object:selection-changed
4705 object:text-selection-changed
4707 object:text-caret-moved
4709 object:row-reordered
4711 object:column-inserted
4712 object:column-reordered
4713 object:column-deleted
4714 object:model-changed
4716 2001-11-16 Bill Haneman <bill.haneman@sun.com>
4718 * libspi/hyperlink.c,h:
4719 Fixed some broken stuff in hyperlink.
4721 * libspi/relation.h:
4722 * libspi/relation.c:
4723 * cspi/spi_accessible.c:
4724 Initial implementations of AccessibleRelation methods, and docs.
4726 * libspi/accessible.c:
4727 Fixed a bug that caused SEGV if an accessible
4728 object's description is NULL, and a client
4729 requests it. An empty string is now returned.
4731 * cspi/spi_editabletext.c:
4732 * cspi/spi_hypertext.c:
4734 * cspi/spi_hyperlink.c:
4738 Doc coverage now 95%.
4740 2001-11-16 Bill Haneman <bill.haneman@sun.com>
4742 One last namespacing revision:
4743 * libspi/accessibleeventlistener.[ch]:
4744 Renamed SpiAccessibleEventListener to SpiEventListener,
4745 (no need for two namespaces ;-)
4747 And lots of documentation fixes:
4749 * docs/at-spi-docs.sgml:
4750 Fixed 'underscore vs. hyphen' bug that was preventing
4751 the gtk-doc API docs from being automatically generated.
4754 * cspi/spi-listener.h
4756 * cspi/spi_accessible.c
4758 * cspi/spi_application.c
4759 * cspi/spi_component.c
4760 * cspi/spi_editabletext.c
4762 * cspi/spi_hypertext.c
4764 * cspi/spi_registry.c
4765 * cspi/spi_selection.c
4769 * docs/at-spi-docs.sgml
4770 * docs/at-spi-sections.txt
4772 Added and fixed up gtk-doc documentation in cspi.
4774 Interfaces now (fully) documented (subject to revision and enhancement):
4776 Event Listener Support
4778 AccessibleApplication
4782 AccessibleEditableText
4789 AccessibleRelationSet
4794 2001-11-14 Bill Haneman <bill.haneman@sun.com>
4796 * at-bridge/bridge.c:
4797 Initial work for toolkit-level key snooper connection by bridge.
4802 New typedefs and fixes to support new namespacing, and cleaner
4803 separation of cspi bindings from libspi bonobo implementation.
4804 Removed inconsistent and extraneous Spi* namespace prefix that
4805 had crept into cspi headers.
4806 Lots of comment fixes that sed had missed.
4808 * cspi/spi-roletypes.h:
4809 * cspi/spi-statetypes.h:
4810 Added SPI_ prefix to Role and State typedefs, and changed all-caps ROLE type
4811 to AccessibleRoleType.
4813 * libspi/accessibleeventlistener.h:
4814 Fixed minor namespacing weirdness.
4816 * libspi/deviceeventcontroller.c:
4817 Reordered some internal API for device listeners.
4818 Changed the key registry final boolean to 'is_system_global'
4819 rather than 'is_synchronous', which is more descriptive of its
4821 Added spi_device_event_controller_new().
4822 Added SpiRegistry backpointer to SpiDeviceEventControllerClass.
4824 * libspi/keystrokelistener.[ch]:
4825 Namespaced KeystrokeListener to SpiKeystrokeListener.
4826 Changed uses of keymasks to use SPI_ prefix, and did other
4829 * libspi/keymasks.h:
4830 Namespaced keymask constants with SPI_ prefix.
4832 * libspi/registry.c:
4833 Some warning fixes, and knock-on fixes from namespace changes.
4836 Added rules for accessx-gui test program.
4838 * test/accessx-gui.c:
4839 Added a simple GUI program in GTK+-2.0 for the AccessX keyboard
4840 utility. It doesn't actually use at-spi, but it's still cool and
4843 * test/keysynth-demo.c:
4847 Fixes so that these test clients work properly with the namespaced
4848 libraries. (Incompletely tested for technical reasons, fixes may follow)
4851 2001-11-13 Michael Meeks <michael@ximian.com>
4853 * libspi/application.c
4854 (impl_accessibility_application_get_version),
4855 (impl_accessibility_application_get_toolkit_name):
4857 (impl_accessibility_application_set_id),
4858 (impl_accessibility_application_get_id): remove
4859 redundant casting code.
4861 * libspi/action.c (impl_getDescription): fix warnings.
4863 * libspi/accessible.c
4864 (impl_accessibility_accessible_get_parent),
4865 (impl_accessibility_accessible_get_child_at_index),
4866 (impl_accessibility_accessible_get_state),
4867 (impl_accessibility_accessible_get_relation_set):
4868 warning fixes & include action.h
4870 2001-11-13 Michael Meeks <michael@ximian.com>
4872 * *.[ch] fix bits I screwed up:
4874 s/([^ \tb(\*\&\?\",])spi_/\1/g;
4875 s/([^ \tb(\*\&\?\",])Spi/\1/g;
4877 2001-11-13 Michael Meeks <michael@ximian.com>
4879 * *.[ch] Namespace libspi into spi_ and Spi.
4881 2001-13-11 Michael Meeks <michael@ximian.com>
4883 * Makefile.am: dist & install at-spi-1.0.pc
4885 * libspi/Makefile.am: install into at-spi-1.0
4887 * idl/Makefile.am (idldir): install into at-spi-1.0
4889 * at-spi-1.0.pc.in: add.
4891 * configure.in: build it.
4893 2001-11-12 Bill Haneman <bill.haneman@sun.com>
4895 * test/keysynth-demo.c:
4896 Use a 'realize' signal-handler to set the WM properties for
4897 the virtual keyboard, rather than making it a "POPUP" type
4898 override-redirect window (thanks to anders carlsson for that
4901 2001-11-11 Bill Haneman <bill.haneman@sun.com>
4904 * test/keysynth-demo.c:
4905 Added new test of key synthesis, which creates a simple
4906 (mouse-operated) onscreen keyboard. It inserts key events into
4907 the currently-focused window, thus it does not grab keyboard focus
4910 * cspi/spi_registry.c:
4911 Added C binding for AT-SPI generateKeyEvent.
4913 * libspi/deviceeventcontroller.c:
4914 Added call to XFilterEvent so that key listener works with XIM (we
4915 hope). Added event_synth_type to generateKeyEvent, so that we can
4916 produce KEY_PRESS, KEY_RELEASE, KEY_PRESSRELEASE (pair), or
4917 synthesize a press/release pair for KeySyms.
4919 2001-11-09 Bill Haneman <bill.haneman@sun.com>
4921 * libspi/Makefile.am:
4922 * registryd/Makefile.am:
4923 (temporary) hack to include libXtst in libspi and registryd.
4924 (Needed for keystroke synthesis, see below).
4927 Improved API for registerKeystrokeListener, in accordance with
4928 discussions with Gnopernicus team and X server research.
4930 * libspi/registry.c:
4931 * libspi/deviceeventcontroller.c:
4932 * libspi/accessible.c:
4933 * libspi/keystrokelistener.c:
4934 Changes and fixes to support keylisteners for potentially
4935 consumed key events (that is, 'passive grabs').
4936 Added implementation for generateKeyEvent() [untested].
4939 Changes to registerKeystrokeListener() API, as above.
4940 Added deregisterGlobalEventListenerAll(), and
4941 deregisterKeystrokeListener(), which are needed for clean exit of
4943 Added typedefs for KeyListenerSyncType, KeyEventMask, and KeySet,
4944 and a macro ALL_KEYS which may be used in place of a KeySet pointer.
4946 * cspi/spi_registry.c:
4947 Added implementations of function prototypes mentioned above.
4949 * registryd/registryd.c:
4950 Added the key listener event source as a g_timeout(), to allow
4951 receipt of key events that are not caught by GDK (since GDK
4952 doesn't support passive keygrabs, this was necessary).
4955 Changed to attach a keylistener to 'Alt' keys, and
4956 respond to the following keycommands: Alt-M (toggle magnifier);
4957 Alt-F (toggle speech); Alt-Q (quit).
4958 Added an exit routine to deregister the listeners, and a key
4959 listener that prints some key info to the console when a key
4960 matches the listener mask (and is thus received by the listener).
4962 * util/idl/Magnifier.idl:
4963 Changes to magnifier API to support multiple zoom regions,
4964 non-uniform scaling in x and y, markDirty, and a host of other
4965 features that would be useful to magnification.
4968 * util/mag_client.c:
4969 * util/mag_client.h:
4970 * util/mag_control.c:
4972 Source code changes to support the above IDL changes.
4975 As above, and also changes to use a (slower) generic conversion
4976 path for colormap conversions, since the fast RGB conversions have been
4977 reported to fail for 16-bit displays.
4979 2001-10-26 Michael Meeks <michael@ximian.com>
4981 * libspi/Makefile.am (orbittypelibdir): install in orbit-2.0
4983 2001-10-26 Laszlo Peter <laca@ireland.sun.com>
4985 * at-bridge/Makefile.am: fix LDFLAGS.
4987 2001-10-09 Bill Haneman <bill.haneman@sun.com>
4989 * at-bridge/bridge.c:
4990 Re-worked listeners for toolkit events, now we have signal
4991 and property listeners. Added a private method
4992 register_atk_event_listeners(), which registers with the
4993 various atk and gtk signals we need to monitor in order to emit
4995 Added emission hook for AtkObject:property-change events, to
4996 support the 'property listeners'.
4997 Fixed some alloc()s of Accessibility_Event structs to use CORBA
5000 * cspi/spi-util.c: added methods spi_warn_ev and spi_check_ev,
5001 which emit warnings and exit, respectively, if CORBA errors occur
5002 during remote calls, and we now use these methods to check most of
5003 our CORBA calls in the C bindings.
5005 * cspi/spi_accessible.c:
5006 Changed AccessibleSelection_refSelectedChild() to
5007 AccessibleSelection_getSelectedChild(), since all our cspi 'gets'
5008 now increment refcounts.
5010 * cspi/spi_component.c:
5011 Fixed some long pointer casts (dangerous!) to pass pointers to
5012 CORBA_longs of the proper type to the CORBA stubs, and copy the
5013 data into the longs that were passed into the C bindings code.
5015 * at-bridge/bridge.c:
5017 * libspi/accessible.c:
5018 Removed ATK_IS_HYPERLINK() query, since AtkObjects are never
5019 hyperlinks, AtkHyperlink is an object type.
5021 * libspi/application.c:
5022 Added various conversions to and from "generic" event types and
5023 atk-specific types; this is really part of the 'bridge'
5024 implementation but is valid for all AtkObject-based accessibility
5027 * libspi/editabletext.c:
5028 Fixed nasty bug wherein editable text's finalize method was
5029 unref'ing tha AtkObject reference that the text parent class was
5030 about to unref _again_. There was also a nasty inheritance bug
5031 that meant that the AccessibleEditableText class was corrupt.
5033 * libspi/selection.c:
5034 Provided implementations for some selection API that was broken.
5036 * idl/Application.idl:
5037 Added registerObjectEventListener () method.
5040 Fixed a number of return values that were Bonobo_Unknowns from
5041 bonobo_object_corba_objref(), which I
5042 forgot to dup before returning. Changed instances of
5043 bonobo_object_corba_objref (bonobo_object(o)) to
5044 BONOBO_OBJREF(o), for concision and clarity.
5046 2001-10-13 Louise Miller <louise.miller@sun.com>
5048 * idl/Accessible.idl, idl/Application.idl, idl/Desktop.idl,
5049 idl/Event.idl, idl/Registry.idl
5050 Changed these files to include Bonobo_Unknown.idl instead
5053 2001-09-10 Marc Mulcahy <marc.mulcahy@sun.com
5055 * libspi/component.c libspi/component.h:
5056 Fixed typo. Added assertions for object checks in
5057 AccessibleComponent code.
5059 2001-10-09 Bill Haneman <bill.haneman@sun.com>
5061 * idl/Accessible.idl:
5062 Added 'isEqual (Accessible *object)'
5063 method for Accessible. (Not Yet Implemented).
5066 Changed signature of registerKeystrokeListener() to
5067 take a KeySet and KeyEventSeq so that specific keys and event
5068 types could be requested for monitoring, and added a flag
5069 is_synchronous so that either synchronous or asynchronous
5070 notification could be requested. (However this is not all
5071 implemented yet). This also meant adding two new typedefs,
5072 KeyEventSeq and KeySet.
5075 Added two new relations, RELATION_TOOLTIP_FOR and
5076 RELATION_LEAFNODE_OF.
5079 Added new state, STATE_HAS_TOOLTIP.
5081 * libspi/text.c, editabletext.c:
5082 Added new assertions to all casts of bonobo-objects from
5083 CORBA servants, to prevent Text API calls on non-text objects.
5084 Changed suspect casts of int-pointer types, so that we
5085 always send a valid CORBA_long pointer to the CORBA APIs that use
5086 in/out long parameters. We then have to copy from the CORBA_long
5087 into the regular long or int for return to the C bindings, or
5088 vice-versa when returning parameters from ATK calls to the bonobo wrappers.
5091 * libspi/deviceeventcontroller.c:
5092 Cleaned these sources up.
5094 Changed return type for getCharacterAtOffset to
5095 CORBA_unsigned_long, to allow for 32-bit characters.
5098 2001-10-08 Bill Haneman <bill.haneman@sun.com>
5102 Fixed 'make dist' so that distro compiles...
5103 * libspi/keymasks.h:
5105 * cspi/spi-listener.c:
5106 KeystrokeListenerCB now returns a boolean.
5108 Added KeyEventType struct, and KeyStroke.
5109 Also added createKeystrokeListener(),
5110 KeystrokeListener_addCallback(),
5111 KeystrokeListener_removeCallback(), and added a keymask to
5112 registerKeystrokeListener().
5113 * cspi/spi_accessible.c:
5114 Changed numerous return types for interfaces from
5115 AccessibleComponent to Accessible<InterfaceName>; this was
5116 probably a cut-and-paste error.
5118 Implementations of new KeystrokeListener api (from spi.h,
5121 Changes to key modifier mapping.
5122 Created ControllerEventMask struct.
5123 Made DeviceEventController derive from Bonobo::Unknown.
5125 Removed TEXT_BOUNDARY_CURSOR_POS boundary type.
5126 * libspi/deviceeventcontroller.c:
5127 Added a number of new internal (private) methods.
5128 * libspi/editabletext.c:
5129 * libspi/editabletext.h:
5130 Fixed a number of bugs related to the fact that
5131 editabletext inherits from text. Fixed the EditableText struct,
5132 the init() call, and use correct casts when calling Text methods
5133 from an EditableText object. Removed (duplicate) atko from the
5134 EditableText structure, we use the one in the parent Text
5135 structure via the casts mentioned above.
5136 * libspi/keystrokelistener.[ch]:
5137 * libspi/registry.c:
5138 Changes in support of keyboard handling (above).
5140 Keyboard handling, though partly functional, is still not
5141 recommended for at-spi client use as there is considerable
5142 work yet to be done.
5145 Changed some places where pointers to various int types
5146 are cast to be pointers to CORBA_long types and vice-versa:
5147 pointer casting is not safe so we pass pointers of the correct
5148 types and then cast the result before putting it into the target
5151 * libspi/text.h: minor typos corrected.
5153 We now speak not only the name of a Text element, but the
5154 first sentence of its content, when it receives focus.
5155 I also changed the text compression to 75% from 50%.
5156 * util/Accessibility_Util.server.in:
5157 Changed the default magnifier type to be a 3x vertical
5158 splitscreen magnifier (was previously a 2x horizontal one).
5160 2001-10-03 Bill Haneman <bill.haneman@sun.com>
5162 * libspi/keystrokelistener.h:
5163 * libspi/keystrokelistener.c:
5164 Initial functional implementations of KeystrokeListener.
5167 2001-10-05 Marc Mulcahy <marc.mulcahy@sun.com>
5169 Fixed string handling for NULL strings in libspi.
5170 Added spi_freeString to free strings returned by C bindings.
5172 2001-09-30 Bill Haneman <bill.haneman@sun.com>
5174 * libspi/keystrokelistener.h:
5175 * libspi/keystrokelistener.c:
5176 Began (no-op) implementations of KeystrokeListener
5178 * libspi/deviceeventcontroller.c:
5179 * libspi/deviceeventcontroller.h:
5180 Began creating implementations of DeviceEventController,
5181 to handle keystroke and mouse event listening and
5183 * libspi/accessible.c:
5184 Stubbed-in the implementations for
5185 Accessibility_Accessible_getState and
5186 Accessibility_Accessible_getRelationSet.
5187 * libspi/registry.c:
5188 Improved de-registration process and fixed some bugs,
5189 deregistration now works correctly.
5191 Added initialization of applications list (to NULL).
5193 Reduced speech compression from 0.5 to 0.7, for demo.
5194 Changed call to gdk_window_set_decorations()
5195 to gtk_window_set_decorated().
5196 * at-bridge/bridge.c:
5197 Bridge now deregisters when app exits, via
5198 registration of a cleanup function
5199 with the g_atexit() call.
5200 Required making 'app' static, renamed 'this_app'.
5201 Fixed broken use of bonobo_init, passing argv wrongly.
5203 2001-09-27 Bill Haneman <bill.haneman@sun.com>
5207 Created a new directory for
5208 accessibility-related utilities, primarily for
5209 testing and demo purposes, but with possible
5216 Onscreen magnifier utility that
5217 is implemented as a bonobo service.
5219 * util/mag_client.c:
5220 * util/mag_client.h:
5221 Client-side support (simple C bindings)
5222 for Magnification service
5224 * util/mag_control.c:
5225 Client program example for
5226 Magnification service
5228 * util/Accessibility_Magnifier.server.in:
5229 Bonobo-activation file for the
5230 Magnification service.
5233 * util/idl/Magnifier.idl:
5234 IDL defining the bonobo Magnification
5238 Modifications to use the bonobo-activated magnifier
5239 above, in place of trying to connect to an existing
5240 magnifier that uses socket-listening IPC.
5242 If env variable MAGNIFIER is set, a magnifier service
5243 will be started if one does not exist.
5245 2001-09-25 Bill Haneman <bill.haneman@sun.com>
5247 * at-bridge/bridge.c:
5248 applied patch from Marc to build and run
5249 against new glib and gtk+ (seemed like a change
5250 to bonobo_init signature was made ?)
5252 made festival-server support turned off by default.
5253 Added support for a simple magnifier (off by default)
5254 which will be added to a 'util' directory later.
5255 * at-bridge/Makefile.am:
5256 Changed "application.h" header from a 'source'
5257 to a 'dependency' of libat-bridge.
5259 2001-09-12 Marc Mulcahy <marc.mulcahy@sun.com>
5268 Added interface implementation c files to list of
5269 includes so they are included in libcspi.
5272 Changed prototype of AccessibleAction_doAction to return a
5274 Changed prototype of AccessibleTable_getCaption to
5275 return an Accessible.
5276 Changed prototype of AccessibleTable_getSelectedRows
5277 and AccessibleTable_getSelectedColumns to
5278 return a long (returns the number of selected rows
5279 or columns respectively).
5280 Changed name of AccessibleText_refRunAttributes to
5281 AccessibleText_getAttributes.
5282 Changed prototype of AccessibleText_getCharacterExtents to
5283 return a void rather than a boolean.
5284 Added support for a AccessibleCoordType parameter
5285 specifying what type of coordinates are desired.
5286 Added an AccessibleCordType parameter to
5287 AccessibleText_getPointAtOffset.
5289 * cspi/spi_accessible.c:
5290 Added code to return the outstanding interfaces from
5291 Accessible_queryInterface.
5293 * cspi/spi_action.c:
5295 Corrected call to getNActions to call the c binding
5298 * cspi/spi_editabletext.c:
5300 Changed name from setRunAttributes to setAttributes.
5302 * cspi/spi_hyperlink.c:
5304 Changed call to getNAnchors to correctly call the c
5305 binding for an attribute.
5307 * cspi/spi_hypertext.c:
5309 Changed getImageDescription to correctly call the
5310 binding for an attribute.
5312 * cspi/spi_selection.c:
5313 Changed getNSelectedChildren to correctly call the c
5314 binding for the attribute.
5315 Changed refSelectedChild to getSelectedChild.
5319 Changed getCaption to return an Accessible.
5320 Fixed calls which retrieve attributes.
5321 Changed refAt to getAccessibleAt.
5322 Changed getNSelectedRows and getNSelectedColumns to
5326 Changed getCharacterExtents and getPointAtOffset to accept an
5327 AccessibleCoordType.
5329 Changed calls which retrieve attributes.
5330 Changed refRunAttributes to getAttributes.
5335 * idl/Hyperlink.idl:
5336 Changed n_anchors attribute to nAnchors to keep naming
5337 convention consistent.
5340 Made Table inherit from Bonobo::Unknown.
5341 Added nSelectedColumns and nSelectedRows attributes.
5344 Made Value inherit from Bonobo::Unknown.
5346 * libspi/hyperlink.c:
5347 Change for nAnchors attributte name change.
5349 2001-09-12 Marc Mulcahy <marc.mulcahy@sun.com>
5357 Added interface implementation c files to list of
5358 includes so they are included in libcspi.
5361 Changed prototype of AccessibleAction_doAction to return a
5363 Changed prototype of AccessibleTable_getCaption to
5364 return an Accessible.
5365 Changed prototype of AccessibleTable_getSelectedRows
5366 and AccessibleTable_getSelectedColumns to
5367 return a long (returns the number of selected rows
5368 or columns respectively).
5369 Changed name of AccessibleText_refRunAttributes to
5370 AccessibleText_getAttributes.
5371 Changed prototype of AccessibleText_getCharacterExtents to
5372 return a void rather than a boolean.
5373 Added support for a AccessibleCoordType parameter
5374 specifying what type of coordinates are desired.
5375 Added an AccessibleCordType parameter to
5376 AccessibleText_getPointAtOffset.
5378 * cspi/spi_accessible.c:
5379 Added code to return the outstanding interfaces from
5380 Accessible_queryInterface.
5382 * cspi/spi_action.c:
5384 Corrected call to getNActions to call the c binding
5387 * cspi/spi_editabletext.c:
5389 Changed name from setRunAttributes to setAttributes.
5391 * cspi/spi_hyperlink.c:
5393 Changed call to getNAnchors to correctly call the c
5394 binding for an attribute.
5396 * cspi/spi_hypertext.c:
5398 Changed getImageDescription to correctly call the
5399 binding for an attribute.
5401 * cspi/spi_selection.c:
5402 Changed getNSelectedChildren to correctly call the c
5403 binding for the attribute.
5404 Changed refSelectedChild to getSelectedChild.
5408 Changed getCaption to return an Accessible.
5409 Fixed calls which retrieve attributes.
5410 Changed refAt to getAccessibleAt.
5411 Changed getNSelectedRows and getNSelectedColumns to
5415 Changed getCharacterExtents and getPointAtOffset to accept an
5416 AccessibleCoordType.
5418 Changed calls which retrieve attributes.
5419 Changed refRunAttributes to getAttributes.
5424 * idl/Hyperlink.idl:
5425 Changed n_anchors attribute to nAnchors to keep naming
5426 convention consistent.
5429 Made Table inherit from Bonobo::Unknown.
5430 Added nSelectedColumns and nSelectedRows attributes.
5433 Made Value inherit from Bonobo::Unknown.
5435 * libspi/hyperlink.c:
5436 Change for nAnchors attributte name change.
5439 2001-09-05 Marc Mulcahy <marc.mulcahy@sun.com>
5441 implementations-- made server implementations own AtkObject pointers
5442 rather than their respective AtkInterrface pointers to fix
5443 refcounting. AtkHyperlink is still broken.
5445 2001-09-04 Bill Haneman <bill.haneman@sun.com>
5446 * cspi/spi_accessible.c:
5447 Added method Accessible_Role_getName(),
5448 and requisite string array (role_names).
5449 Added conversion string_from_corba_strin() call
5450 to Accessible_getName and _getDescription.
5451 * libspi/accessible.c:
5452 Added implementation for Accessible_getRole()
5454 Added festival support, used if environment variable
5457 2001-09-04 Bill Haneman <bill.haneman@sun.com>
5459 * at-bridge/bridge.c:
5460 Now allocate Accessibility_Event using
5461 Accessibility_Event__alloc() instead of g_new0().
5462 * libspi/accessibleeventlistener.c:
5463 Initialize AccessibleEventListener->callbacks to NULL.
5464 Fixed accessible__event_listener_init() param, changed to
5465 "AccessibleEventListener *" type.
5466 Changed a bonobo_object_release_unref() call to
5467 Accessibility_Accessible_unref().
5468 * libspi/listener.c:
5469 Changed Bonobo_Unknown_unref to (equivalent)
5470 Accessibility_Accessible_unref.
5471 * libspi/registry.c:
5472 Changed bonobo_object_release_unref to
5473 Accessibility_Accessible_unref.
5475 2001-09-04 Marc Mulcahy <marc.mulcahy@sun.com>
5478 spi_action.c spi_editabletext.c spi_hyperlink.c spi_hypertext.c
5479 spi_image.c spi_selection.c spi_table.c spi_text.c spi_value.c
5480 spi-util.c spi-util.h
5481 Implementations for C bindings to remaining accessibility
5484 2001-09-04 Marc Mulcahy <marc.mulcahy@sun.com>
5487 changed return value of Action from void to boolean to
5488 bring in line with ATK.
5491 Changed getText funcions to return "out" start and end offsets.
5492 Changed getAttributes to take and offset and return the start
5493 and end offset of the attribute run.
5494 Changed getOffsetAtPoint and getCharacterExtents to take an
5495 enum describing whether coordinates are window or screen.
5498 libspi/action.c libspi/action.h libspi/editabletext.c
5499 libspi/editabletext.h libspi/hyperlink.c libspi/hyperlink.h
5500 libspi/hypertext.c libspi/hypertext.h libspi/image.c
5501 libspi/image.h libspi/selection.c libspi/selection.h
5502 libspi/table.c libspi/table.h libspi/text.c libspi/text.h
5503 libspi/value.c libspi/value.h
5504 Added server implementations for outstanding ATK interfaces
5505 not yet implemented.
5507 2001-09-04 Bill Haneman <bill.haneman@sun.com>
5510 Added (missing) getName() method.
5511 Made nActions an attribute.
5512 * idl/EditableText.idl:
5513 Changed order of params in setAttributes.
5514 * idl/Hyperlink.idl:
5515 Removed getAnchor, added getURI.
5517 Changed attributes to methods, for efficiency
5518 (so that getting extents can be done in one call)
5519 * idl/Selection.idl:
5520 Changed nSelectedChildren to attribute, and re-indented.
5521 * idl/Table.idl: changed nrows, ncolumns, caption, summary
5523 * idl/Text.idl: reformatted to match our coding style.
5524 (temporarily?) removed getRowColumnAtOffset().
5525 Changed text selection API to support multi-select and
5526 non-contiguous selections, as in ATK.
5527 * idl/Value.idl: changed some methods to attributes.
5529 2001-08-24 Mark McLoughlin <mark@skynet.ie>
5531 * libspi/listener.c(impl_notify_event):
5532 BonoboUnkown_unref the source instead
5533 of bonobo_object_release_unref - the ORB
5534 handles the releasing.
5536 * configure.in: require ORBit-2.3.94 for
5539 2001-08-21 Bill Haneman <bill.haneman@sun.com>
5541 Tagged CVS repository 'EA_1_0'.
5542 * README.EARLY_ACCESS:
5543 Alphabetized acknowledgements list, and
5545 Listed some known dependencies of at-spi.
5547 2001-08-20 Bill Haneman <bill.haneman@sun.com>
5549 * docs/at-spi-docs.sgml:
5550 * docs/at-spi-sections.txt:
5551 * docs/at-spi-overrides.txt: (Added zero-length file)
5552 Documentation improvements - gtk-doc should build
5553 docs for all implemented C bindings now.
5556 * cspi/spi.c: (New file)
5557 * cspi/spi_event.c: (New file)
5558 * cspi/spi_registry.c: (New file)
5559 * cspi/spi_accessible.c: (New file)
5560 * cspi/spi_application.c: (New file)
5561 * cspi/spi_component.c: (New file)
5562 Split spi_main.c into six parts, and included them from
5563 "spi.c". This is a bit of a hack, probably temporary,
5564 but required by gtk-doc, apparently.
5566 2001-08-20 Bill Haneman <bill.haneman@sun.com>
5569 * docs/at-spi-docs.sgml:
5570 * docs/at-spi-sections.txt:
5572 Initial checkins/modifications for gtk-doc generation.
5575 Added (missing) interface query methods to Accessible's C binding.
5577 Added GenericInterface type definition.
5579 Added query for AccessibleComponent interface to focus event handler.
5580 Added printout of bounding box for focussed component.
5581 * libspi/component.c:
5582 Added partial implementation for AccessibleComponent to C binding.
5583 * idl/Application.idl:
5584 * libspi/registry.c:
5585 * libspi/listener.c:
5586 * libspi/application.c:
5587 * libspi/application.h:
5588 Changed "ID" attribute type from string to long.
5590 2001-08-19 Bill Haneman <bill.haneman@sun.com>
5594 Made method naming consistent: methods taking object args
5595 start with uppercase, other methods (except those using
5596 acronyms) start with lowercase. Underscores delimit between
5597 object names and method names:
5598 SPI_init() - uppercase since it starts with an acronym.
5599 getDesktopCount () - lowercase start since no object param0.
5600 Accessible_getName() - uppercase object type name, studlyCaps method
5604 Added gtk-doc documentation for all currently implemented
5605 methods in the C bindings API.
5607 2001-08-18 Bill Haneman <bill.haneman@sun.com>
5609 * Makefile.am : changed build order to build test last.
5612 Changed "createEventListener" to "CreateEventListener".
5613 * libspi/accessibleeventlistener.c :
5614 Bugfix for addition of callbacks.
5615 * test/Makefile.am :
5616 * test/simple-at.c :
5617 Added new test that uses the C bindings API.
5619 * libspi/listener.c :
5620 * libspi/registry.c :
5621 * libspi/accessibleeventlistener.c :
5622 * at-bridge/bridge.c :
5623 Renamed member "target" of Accessibility_Event to "source",
5624 which is more descriptive.
5627 2001-08-18 Bill Haneman <bill.haneman@sun.com>
5631 * cspi/Makefile.am :
5632 Added makefile support for at-spi/cspi directory.
5635 * cspi/spi-listener.h : (NEW FILE)
5636 Added support for/use of spi-listener.h.
5638 C bindings now build successfully, with no warnings.
5639 * libspi/accessibleeventlistener.h : (NEW FILE)
5640 * libspi/accessibleeventlistener.c : (NEW FILE)
5641 * libspi/Makefile.am :
5642 Added new object type "AccessibleEventListener"
5643 which inherits from Listener, and allows attachment
5644 of in-process callbacks (so that a client with a listening
5645 object instance can add functionality to the local
5646 implementation, dynamically).
5648 2001-08-18 Bill Haneman <bill.haneman@sun.com>
5650 * libspi/accessible.c:
5651 Add implementation for get_index_in_parent().
5653 Added #include of "spi-roletypes.h", and
5654 added enumerated type AccessibleCoordType.
5655 Added definition for KeystrokeListener (function type).
5658 * cspi/spi-statetypes.h :
5659 * cspi/spi-roletypes.h :
5661 Added these headers, used by spi.h.
5663 Added code (NOTE: not yet built by make).
5665 2001-08-18 Mark McLoughlin <mark@skynet.ie>
5667 * libspi/Makefile.am: generate imodule
5668 at the same time as other idl compiler
5671 2001-08-17 Bill Haneman <bill.haneman@sun.com>
5672 * libspi/registry.c :
5673 * libspi/application.c :
5674 * idl/Application.idl :
5675 Made registration with toolkit an application method,
5676 which is required since each app has its own toolkit static
5677 environment. Thus the bridge must register for
5678 notification of toolkit events from each application in turn.
5679 Toolkit notifications are now successfully registered for, and
5680 sent to the listening at client.
5682 Changed toolkit event string to use hyphens rather than underscores.
5683 * libspi/listener.c :
5684 listner now gives more info in debug mode - it reports the
5685 name of the event received, as well as the name of the source.
5688 2001-08-16 Bill Haneman <bill.haneman@sun.com>
5690 * libspi/registry.c :
5691 added more implementation for toolkit events.
5692 Fixed bug such that toolkit event registrations
5693 (via atk) use the whole event name string, not
5695 Removed a useless call to an ORBit_ method.
5696 * at-bridge/bridge.c :
5697 Removed unused local sbuf[] variable.
5699 We now register for Gtk:GtkWidget:button_press_event
5700 events as well as "focus:" events.
5702 Add some more API from Registry.idl that was missing,
5703 for keystroke listening, keystroke and mouse event
5704 synthesis, and enumeration of accessible desktops.
5706 2001-08-16 Michael Meeks <michael@ximian.com>
5708 * configure.in: use AM_GLIB_GNU_GETTEXT.
5710 * Makefile.am (SUBDIRS): kill intl.
5712 2001-08-15 Michael Meeks <michael@ximian.com>
5714 * registryd/Makefile.am: s/oaf/server/ relocate info file.
5716 * configure.in: upd.
5718 * configure.in: depend on a recent bonobo-activation that
5719 will find our server files ...
5721 2001-08-16 Bill Haneman <bill.haneman@sun.com>
5723 * libspi/accessible.c : accessible_new() :
5724 Now we add the Component interface via bonobo_object_add_interface,
5725 if the contained AtkObject implements AtkComponent.
5726 * libspi/accessible.h : now include "component.h"
5727 * libspi/component.h :
5728 * libspi/component.c : added files - implementation of
5729 bonobo wrapper object for Accessibility/Component
5730 * libspi/listener.c :
5731 Added test code to check for Accessibility/Component:1.0
5732 interface and report whether it is implemented by the
5734 * libspi/registry.c :
5735 Now we check for not only the hash of the whole event
5736 string before relaying the event, we also check the
5737 "minor" event string (without the detail string).
5738 This allows event listeners to be registered against
5739 all events of a certain major+minor type, or just
5740 against a specific major+minor+detail type.
5741 * libspi/accessible.c :
5742 Added implementations for Accessible:get_parent(),
5743 Accessible:getChildCount(), and Accessible:getChildAtIndex().
5744 * libspi/registry.c :
5745 * libspi/listener.c :
5746 Replaced calls to Accessibility_Accessible_ref() and
5747 Accessibility_Accessible_unref() with
5748 calls to bonobo_object_dup_ref() and
5749 bonobo_object_release_unref(), so that the CORBA object
5750 is dup-ed and released when relayed, as well as the bonobo object.
5752 2001-08-15 Mark McLoughlin <mark@skynet.ie>
5754 * libspi/Makefile.am,
5755 registryd/Makefile.am,
5756 at-bridge/Makefile.am.
5757 test/Makefile.am, configure.in:
5758 reverse previous changes.
5760 * /idl/Image.idl: fix typo.
5762 * test/Makefile.am: put DEBUG_FLAGS
5765 2001-08-15 Mark McLoughlin <mark@skynet.ie>
5767 * test/app.c: use argv[0] instead of
5770 2001-08-15 Mark McLoughlin <mark@skynet.ie>
5772 * libspi/Makefile.am,
5773 registryd/Makefile.am,
5774 at-bridge/Makefile.am.
5775 test/Makefile.am, configure.in:
5776 cleanup, replace individual LIBS/CFLAGS with
5777 AT_COMMON_{LIBS|CFLAGS}.
5781 2001-08-15 Mark McLoughlin <mark@skynet.ie>
5783 * configure.in, libspi/Makefile.am:
5784 Change IDL path checking for bonobo-activation
5787 2001-08-15 Bill Haneman <bill.haneman@sun.com>
5789 * registryd/registry.c : separated event listeners to use
5790 3 separate lists (focus, window, toolkit). Began testing
5791 event names against hashes before relaying events.
5792 * test/at.c : now register for events of type "focus:"
5793 * test/app.c : now generate events of type "focus:"
5794 * at-bridge/bridge.c : register with ATK for focus events,
5795 and we now relay those focus events to any "focus:" listeners.
5796 This now works with the bridge as a GTK_MODULE when running test/at.
5797 * libspi/registry.c :
5798 * libspi/listener.c :
5799 now we ref event sources before propagating, and unref on receipt.
5800 * libspi/registry.c :
5801 some changes to internal structs, to support event typestring hashes.
5802 * text/app.c : changed the way the appname is generated.
5803 * cspi : added directory that will hold the C bindings library for
5804 non-CORBA/bonobo-savvy clients.
5805 * cspi/spi.h : header file that contains the function prototypes for the C binding.
5806 * idl/Component.idl : added in parameter to indicate coord system for
5807 geometry-related calls.
5808 * idl/Hyperlink.idl : added readonly n_links attribute
5809 * idl/Image.idl : changed methods to attributes.
5811 2001-08-15 Mark McLoughlin <mark@skynet.ie>
5813 * at-bridge/Makefile.am: link against
5814 ../libspi/libspi.la instead of -lspi.
5816 * at-spi/test/app.c: include
5817 bonobo-activation.h. Use a default appname
5818 if one is not provided.
5820 2001-08-14 Bill Haneman <bill.haneman@sun.com>
5822 * idl/Registry.idl : temporarily changed register_Application
5823 to oneway, to work around issue with initial registration
5825 * idl/Application.idl : changed attribute "id" from readonly
5826 to read-write, since it needs to be assigned by Registry.
5827 * registryd/registryd.c : added call to set application id
5829 * registryd/registry.c : changed de-registration procedure to
5830 use CORBA_Object_hash() to find matching object ref in application
5831 lists and listener lists.
5832 * registryd/registry.c : defined EventTypeStruct and EventTypeMajor,
5833 began distinguishing between event types (work in progress).
5835 2001-08-13 Bill Haneman <bill.haneman@sun.com>
5838 * libspi/application.c:
5839 Added implementations for get/set id, get_toolkitName,
5841 * registryd/registryd.c :
5845 Converted from use of OAF to bonobo-activation.
5846 * libspi/desktop.h :
5847 * libspi/desktop.c :
5849 Removed references to atksimpleobject, since base atkobject
5850 implementation now provides functionality we need.
5851 * libspi/atksimpleobject.c :
5852 * libspi/atksimpleobject.h :
5857 * at-bridge/Makefile.am
5858 * at-bridge/bridge.c
5861 Added directory "bridge" and contents, and added dependencies
5862 in Makefile.am/configure.in.
5863 Initial checkin of "at-bridge".
5864 This code is a GTK_MODULE which automatically registers
5865 GTK+ apps with the accessibility registry, using an object
5866 reference to the root ATK object.
5868 2001-08-10 Mark McLoughlin <mark@skynet.ie>
5870 * po/Makefile.in.in: Remove. Again. If this
5871 doesn't get autogenerated - you need to update
5874 2001-08-07 Mark McLoughlin <mark@skynet.ie>
5876 * po/Makefile.in.in: Add. Again.
5878 2001-07-31 Bill Haneman <bill.haneman@sun.com>
5880 * libspi/accessible.c : added support for 'description' property.
5881 * libspi/accessible.c
5883 * libspi/registry.c : changed to use bonobo_object instead of bonobo_x_object
5884 (since the two are now equivalent in libbonobo)
5892 * idl/Value.idl : changed these 'secondary' interfaces to inherit from
5893 Bonobo::Unknown as does Accessibility::Accessible.
5894 * idl/StreamableContent.idl : as above, and replaced internal InputStream
5895 interface with Bonobo::Stream, since it was redundant with it.
5896 (The Stream returned by a StreamableContext object is expected to
5897 implement only a subset of Bonobo::Stream)
5899 2001-07-28 Anders Carlsson <andersca@gnome.org>
5901 * libspi/accessible.c (accessible_object_finalize): Change
5902 g_free to g_object_unref since the AtkObject is a GObject.
5904 2001-07-30 Bill Haneman <bill.haneman@sun.com>
5906 * idl/Accessibility.idl: add new IDL files
5909 * idl/Action.idl: Definitions of actionable UI object
5910 * idl/Component.idl: Definitions of UI component geometry, etc.
5911 * idl/Hyperlink.idl: Defs of hyperlink behavior
5912 * idl/Image.idl: Def of accessible image
5913 * idl/Selection.idl: Definition of UI object with selectable children
5914 * idl/StreamableContent.idl: Definition of UI object with streamable backing data
5915 * idl/Table.idl: Definitions for access to table ('spreadsheet') elements
5916 * idl/Text.idl: Interface defs for UI elements with complex textual content
5917 * idl/Value.idl: Definition of UI element that is a value controller or display
5919 2001-07-27 Michael Meeks <michael@ximian.com>
5921 * po/Makefile.in.in: remove autogenerated file from CVS.
5923 * libspi/Makefile.am: Radicaly re-vamp to simplify & add ORBit2
5926 * idl/Registry.idl: include guard.
5928 * idl/Accessibility.idl: Add, and include all the other IDL
5931 * idl/*.idl: remove mass of pragmas etc.
5933 2001-07-26 Michael Meeks <michael@ximian.com>
5935 * registryd/Makefile.am (registryd_SOURCES): remove
5938 2001-07-27 Mark McLoughlin <mark@skynet.ie>
5940 * libspi/.cvsignore, registryd/.cvsignore,
5941 test/.cvsignore: updated.
5943 * po/Makefile.in.in: gettext update.
5945 2001-07-25 Bill Haneman <bill.haneman@sun.com>
5947 * initial CVS checkin
5949 2001-06-29 Michael Meeks <michael@ximian.com>
5951 * configure.in: add AM_CONFIG_HEADER to gen config.h