2006-02-21 Bill Haneman * configure.in: Revved to 0.2.3, re-dist. 2006-02-20 Bill Haneman * src/Makefile.am: Added poke.h to at_poke_SOURCES. Thanks to Daniel Holbach for finding problem. Fixes bug #331692. 2005-11-29 Frederic Crozat reviewed by: Michael Meeks * src/poke.c: (poker_create): Fix crash when closing poke window. Bug #311180 Patch from Jonathan Blandford . 2005-05-26 Michael Meeks * src/poke.c (accessible_get_iface_string): impl. * src/eventlog.c (log_object_property_change), (log_window): impl. disable idle event logging - have to do it immediately to get the data we need. (log_accessible): don't use indexInParent, instead print details about supported interfaces. * src/eventlog.c (log_keyboard_modifiers), (log_object_link_selected, log_object_text_selection_changed) (log_object_children_changed) (log_object_active_descendant_changed): impl. * src/main.c: fix eventlog show/no-show lifecycle. * src/eventlog.c (log_mouse_button, log_mouse): impl. * src/eventlog.c (log_event): match events vs. our table & locate a suitable event dump function. (log_object_text_changed, log_object_text_caret_moved): impl. a couple of dumping functions. 2005-05-25 Michael Meeks * src/main.c (child_setup_env, main, main), * src/poke.c (blink_draw_rectangle): allow the specification of a target display to poke at - ie. logged into the same machine you can run with -T :0.0 from DISPLAY=:1.0 and see at-poke on display :1.0 and poke the apps on :0.0 * src/eventlog.c (global_event_callback, idle_do_log) (event_log_destroy, event_log_create): store events until idle, before interrogating & whacking them in the GtkTreeView, otherwise we can get infinite loops eg. via getIndexInParent's bogus property-change notification on call. * src/poke.c (poke, find_poker, poker_create, poker_destroy): keep a list of live poker windows, seek that when we are asked for a new poke - try to raise/select the relevant accessible. * src/poke.c (poke, root_died_cb, window_delete_event): fix hideous lifecycle problems. * src/eventlog.c (link_clicked, log_message, log_accessible), (ellipsize): pretty print more details about each accessible add hyperlink type things - as yet not that useful. * src/eventlog.c (clobber_with_children): upd to tolerate NULL iter, (events_select_all_clicked): impl. (events_save_as_clicked): impl. * src/eventlog.c: expand list of events to listen to. 2005-05-10 Michael Meeks * src/eventlog.c (update_listener_row_changed): connect and update the events we're listening to from the tree. * src/eventlog.c (update_filter_model, clobber_with_children) (toggle_row, check_children, get_row_state): re-factor & implement indeterminate state goodness in tree. * src/eventlog.[ch]: add to help track down / work out what events are being & should be emitted & when & in what order. * src/main.c (edit_preferences_clicked): impl. & change default of dontdisplaychildren to TRUE for MANAGES_DESCENDANTS. (file_execute_clicked): impl. (show_event_log_toggled): impl. * src/graphics.c (get_glade_xml): cache the glade xml. * src/poke.c (update_if_editable, update_if_text): don't de-sensitize as well as making non-editable, insensitive in Industrial is virtually invisible. * glade/at-poke.glade2: re-work, bin bogus BonoboWindow usage, add menu etc. * src/poke.c (poker_window_activate_cb): fix function signature & return type. * src/main.c (child_setup_env, spawn_app, main): re-write to use g_spawn instead of unsafe fork code. Use popt arguments properly; launch gtk-demo less frequently. (window_delete): rename from destroy, use delete_event get mainloop handling right. * src/poke.c (update_text_caret): split. (update_if_text): from here. (editable_text_changed_cb): call here too. 2005-04-26 Stanislav Brabec * src/accessible-tree-model.c: Define ITER_NODE_L, which can be used as lvalue with gcc-4. 2005-04-22 Michael Meeks * src/poke.c (poke) split out (poker_destroy): update & disconnect listener signal handlers with bogus user_data. * src/accessible-listener.c (accessible_listener_dispose): de-register callbacks as we dispose in case of listener lifecycle problems. 2005-04-13 Michael Meeks * src/poke.c (update_if_action): cope with exception on getNActions without looping forever; warn if we have a stupid (>256?) number of actions. 2005-01-05 Padraig O'Briain * src/accessible_tree_model.c (accessible_tree_model_get_value): Add missing brackets. Problem introduced in fix for bug 149897. Problem reported by George Kraft (gk4@austin.ibm.com) 2004-11-30 Padraig O'Briain * src/Makefile.am: Add define DATADIR * src/graphics.c (get_glade_xml): Use gnome_program_locate_file() to find at-poke's glade file. * src/main.c (main): Specify GNOME_PARAM_APP_DATADIR param to gnome_program_init() Fixes bug #159901; patch from Christian Persch 2004-08-11 Padraig O'Briain * src/accessible-listener.c: Fix compiler warning. * src/accessible_tree_model.c: Use SPI_dupString instead of my_SPI_dupString. Call SPI_freeStrring to avoid leaking string which is replaced. * src/popuplate_app_list: Add check for application with no name and output as name for such applications. Fixes bug #149897. 2004-05-11 James Henstridge * configure.in: remove GNOME_PLATFORM_GNOME_2 macro, which is a no-op and deprecated. 2004-03-15 Padraig O'Briain * configure.in: Update to Version 0.2.2 * NEWS:Updated 2004-03-15 Padraig O'Briain * src/main.c (main): Display warning dialog if at-poke is started without GConf accessibility key enabled. Fixes bug #136499. 2004-03-10 Padraig O'Briain * src/main.c (main): Allow specifying a program to be run with accessibility enabled when starting at-poke, e.g. "at-poke gedit". Fixes bug #136498. 2004-03-08 Padraig O'Briain * src/poke.c (update_relation_set): Add support for missing relations. * configure.in: Update cspi requirement so that the relations are defined. 2003-11-17 David Malcolm * src/main.c: (main): Fixed potential g_assert problem with SPI initialisation 2003-10-21 Padraig O'Briain * src/poke.c: (link_activated_cb): New function which implements clicking on a hyperlink. (update_if_hypertext): Add the text for the hyperlink to hypertext_store. (poke): Add text column to hypertext_store. This fixes bug #124164. 2003-05-28 Padraig O'Briain * src/accessible-tree-model.c (model_node_sync_children): If using AccessibleTable interface to get children, do not exceed number of rows or columns. * src/child-listener.c: Remove semicolon after GNOME_CLASS_BOILERPLATE to avoid compiler warning. * src/poke.c (blink_draw_rectangle): Set blink_widget to NULL after it has been destroyed. (update_if_selection): If using AccessibleTable interface to get children, do not exceed number of rows or columns. Use correct index value in call to process_accessible. 2003-05-28 Bolian Yin * src/poke.c (blink_draw_rectangle): impl. (component_blink_extents, update_if_component): add a blinking widget feature so you can readily identify selected components. 2003-05-28 Michael Meeks * src/accessible-tree-model.c (model_node_sync_children): use 'accessible_table' as 'use_table' to clean flow. (report_global_event): fix format string. * src/child-listener.c (child_listener_global_event): calm warning. 2003-04-30 Michael Meeks * configure.in: Version 0.2.1 2003-03-04 Padraig O'Briain * src/main.c (application_window): Ensure that app_window->window is set to NULL when window is destroyed. This fixes bug #106918. 2003-02-04 Padraig O'Briain * src/poke.c (update_if_table): Set max number of rows and columns to max_children if it has been set. (update_if_selection): Check whether use_table_if and max_children have been set and use to restrict the number of children retrieved. This addresses bug #100213 2003-01-16 Padraig O'Briain * configure.in: Update to Version 0.2.0 * NEWS:Updated 2003-01-15 Padraig O'Briain * src/poke.c (update_if_image): Prevent label for image description from getting wider than 100. This addresses bug #103473. * glade/at-poke.glade2: Make MDI-Z_order aligned with other labels for Component. Add border width for Image frame so that it is aligned with other frames. 2003-01-09 Darren Kenny * src/accessible-tree-model.c: Fix regression in the handling of children-changed events. 2002-12-10 Padraig O'Briain * src/accessible-tree-model.c: Add boolean variables dontdisplaychildren and use_table_if. Add display_children variable to ModelNode data structure. (model_node_new): Set display_children for ModelNode to FALSE if dontdisplaychildren is set and state set of Accessible includes SPI_STATE_MANAGES_DESCENDANTS. (model_node_has_children): Check ModelNodes's display_children variable. (model_node_sync_children): Use AccessibleTable_getAccessibleAt() to get children of AccessibleTable if use_table_if is specified. (model_node_children_changed): Ignore if ModelNode's display_children is FALSE. (report_global_event): Add check for receipt of active-descendant-changed event. (accessible_tree_model_init): register for receipt of active-descendant-changed event. * src/main.c: Add -d (dont display children) and -t (use table if) command line options. * src/poke.c (update_if_accessible): Ensure that MANAGES_DESCENDANTS state is displayed in alphabetic order. 2002-12-06 Padraig O'Briain * src/poke.c: (update_if_accessible): Add SPI_STATE_MANAGES_DESCENDANTS (poke): Correct typo when creating hypertext view. * configure.in: Update cspi-1.0 dependency to 1.1.5. 2002-11-07 Padraig O'Briain * src/accessible-tree-model.c: Add global variable max_children which specifies the number of children to be reported (model_node_has_children): New function which determines whether node has children. (model_node_sync_children): Report only max_children children of node if max_children is specified; otherwise report all children (accessible_tree_model_iter_has_child): Use model_node_has_children() to determine whether a node has children; this avoids getting all the children of a node when determining whether a node has children. * src/main.c: Define command line options and use to initialize max_children. This addresses issues raised in bug #97624. 2002-10-16 Padraig O'Briain * glade/at-poke.glade2: Add poker_hypertext_frame. * src/poke.c: Add support for poker_hypertext_frame. Display number of hyperlinks and number of anchors for each link. This fixes bug 91990. 2002-10-09 Padraig O'Briain * src/poke.c (poke): Add columns for action interface correctly. 2002-10-08 Padraig O'Briain * src/accessible-tree-model.c (accessible_tree_model_unref_node): Do not call mnode_destroy() here. Fixes bug #94849. 2002-10-03 Padraig O'Briain * src/accessible-listener.[ch] (accessible_listener_shutdown): New function which causes listeners to be unregistered (accessible_listener_get): Make listener visible throughout the file. * src/main.c (application_window): Add call to accessible_listener_shutdown. This change address bug #93215. 2002-10-02 Padraig O'Briain * src/accessible-tree-model.c (accessible_is_base_accessible): Correct previous change which caused crash with Java application. 2002-09-24 Padraig O'Briain * src/accessible-tree-model.c (accessible_tree_model_unref_node): If root node if being unref'ed get rid of its children if they exist. (accessible_is_base_accessible): Call Accessible_unref() for return value of Accessible_queryInterface(). * src/child_listener.c (child_listener_global_event): Remove incorrect call to Accessible_unref() * src/main.c (validate_up_down_linkage): Call Accessible_unref() for return value of Accessible_queryInterface(). 2002-09-19 Padraig O'Briain * accessible-tree-model.c (model_node_destroy): Remove call to Accessible_unref() as it is called in mnode_destroy(). (model_node_sync_children): Add call to Accessible_unref() to correspond to the call to Accessible_ref() made by call to Accessible_getChildAtIndex() when the accedssible was added to the list. (accessible_tree_model_unref_node): Add call to mnode_destroy() to fix leak. (accessible_tree_model_dispose): Call model_node_destroy() on root node to avoid leaks. * child-listener.[ch] (child_listener_global_event): This function is the event handler for children-changed event. If it is for the desktop check whether it is a remove and if so, emit a "root_died" signal and remove the application from the list. Use get_accessible_at_index() to determine which application to remove. (child_listener_create) New function which stores the GtkListStore containing the list of application. * main.c (validate_up_down_linkage): Call Accessible_unref() on return from Accessible_getParent() and Accessible_getChildAt_index() to avoid leaking accessible objects. (get_accessible_at_index): New function which returns the accessible at the specified index in the GtkListStore. (list_store_clear): New function which calls Accessible_unref() for Accessible objects in the list store and calls gtk_list_store_clear(). (populate_app_list): Call list_store_clear() instead of gtk_list_store_clear(). (window_destroyed): New function which is defined as signal handler for destroy signal on window for application. (create_app_list): Free data structures on exit and call gtk_widget_destroy() for window, if it still exists. * poke.c Add poker_died variable to Poker structure. It is used to determine whether the poke window or the main window was closed. (root_died_cb): Set poker_died to TRUE. (window_destroyed): New function which is defined as signal handler for destroy signal on the poke window. (poke): Add index argument to poke(). Use index argument in call to child_listener_add_root(). Call gtk_widget_destroy() for window, if it still exists. Call gtk_main_quit() if poker_died is not set so poke can close if main window is closed. This fixes bug 93213. 2002-09-13 Padraig O'Briain * src/poke.c (poker_tree_selection_changed): Set poker->selected to NULL if nothing is selected (poker_tree_row_collapsed): Set selected row to be the collapsed row if poker->selected is NULL (init_accessible_tree): Add signal handler, poker_tree_row_collapsed, for row_collapsed signal. This fixes bug #91996 by ensuring that there is always a selected row. 2002-09-12 Padraig O'Briain * src/main.c (main): Output informative message if unable to exec gtk-demo. 2002-09-05 Padraig O'Briain * src/main.c (application_clicked); Check that there is a selected application (popuplate_app_list): Unset app_window->selected if no application. This fixes bug #91997. 2002-08-30 Padraig O'Briain * src/accessible-tree-model.c (model_node_destroy): Call Accessible_unref() for accessible in the node so that the ref count for the corresponding accessible object in the application will be correct; i.e. it will be deleted when the corresponding widget is deleted. (model_node_children_changed): Emit warning message generated when window is being destroyed when DEBUG_TREE is defined. 2002-08-12 Michael Meeks * src/accessible-tree-model.c (model_node_children_changed): upd. (report_global_event): upd. 2002-07-24 Darren Kenny * glade/at-poke.glade2: Put back Expand and Refresh buttons in the "poker" window. Allow "Image Description" and "Text Attributes" labels to wrap long text. 2002-07-10 Darren Kenny * src/accessible-tree-model.c (accessible_is_base_accessible): Correct some problems with previous commit. 2002-07-10 Darren Kenny * src/main.c (main): Removed guards around assertions for JAVA, not needed any more. * src/poke.c (update_if_text): Added a check to see if 'attributes' is NULL before using it. * src/accessible-tree-model.c (accessible_tree_model_new): Removed guard around assertion for JAVA. (accessible_is_base_accessible): Put in a valid test for JAVA rather than assuming it is FALSE, this is required because JAVA's ORB doesn't handle an "is_a" invocation when requested over the network. 2002-06-16 Christopher James Lahey * glade/at-poke.glade2: Added table support. Added a VPaned. Changed packing settings. * src/poke.c (update_if_table): Added table support. 2002-05-27 Michael Meeks * Version 0.1.0 2002-05-23 Michael Meeks * src/accessible-tree-model.c (accessible_tree_model_get_value): use SPI_ROLE_INVALID instead of -1, for some reason enums don't like negative comparisons :-) 2002-05-22 Michael Meeks * configure.in: Bump version 2002-05-22 Michael Meeks * src/accessible-tree-model.c (model_node_destroy): impl. 2002-05-22 Michael Meeks * src/accessible-tree-model.c (model_node_removed, model_node_inserted): impl. (model_node_sync_children): make it sync the current view with what is there now, handling re-entrancy from the children changed listener. (model_node_children_changed): tag children changed. (accessible_tree_model_new): use model_node_inserted (accessible_tree_model_unref_node): free the node ?. (accessible_tree_owns_node): impl. 2002-05-22 Michael Meeks * src/poke.c (poker_tree_selection_changed): fix missing prototype. * src/accessible-tree-model.c: total re-write. (accessible_tree_model_get_value): cache the values of everything per node. 2002-05-14 Bill Haneman * glade/at-poke.glade2: * src/poke.c: Changed spelling of "carret" to "caret". * src/accessible-tree-model.c: Added a compile-time guard, JAVA_ENABLED. Disable runtime assertions for g_assert (accessible_is_base_accessible (root)) * src/main.c: Put #ifdef JAVA_ENABLED guards around assertion (aa == accessible), instead we use g_message in that case to print a warning. * src/poke.c: Create an AccessibleListener (See added files below) and connect to its "object-update" signal; keep the listener informed of changes to the selected object in the tree view. When fired we update the object-specific data. Block the text caret signal handler (as well as the text change handler) for the duration of a text update. Added method "poker_selection_object_update() and poker_window_activate_cb()". This second function is a callback which we use to block the "object-update" signal handler when the at-poke UI is active, to help avoid collisions between the poke UI (which changes the Accessible) and the listener which notifies at-poke of those changes. * src/graphics.c: Associated role types LAYERED_PANE and ROOT_PANE with existing graphics "viewport_xpm". * src/poke.c: Changed the default coordinate type in poker-ctype to SPI_COORD_TYPE_SCREEN. * src/accessible-listener.c: * src/accessible-listener.h: New files. * src/Makefile.am: Include above new files in SOURCES. 2002-04-22 jacob berkman * configure.in: fix some confusion between make and m4 2002-04-18 Michael Meeks * src/poke.c (relation_row_activated_cb): impl. (poke): upd. * src/accessible-tree-model.c (accessible_get_path): fix silly. (accessible_tree_model_path): impl. 2002-04-18 Michael Meeks * src/poke.c (poke): init the relation_set store. (update_relation_set): rudimentary relation set name dumping ... It seems at-spi's getNTargets is just totally broken. 2002-03-27 Michael Meeks * Version 0.0.2 2002-03-27 Michael Meeks * icons/Makefile.am: add. * configure.in: require more packages with sensible versions. * src/accessible-tree-model.c (accessible_tree_model_get_value): get the description not the name ! :-) 2002-03-21 Michael Meeks * src/poke.c (update_if_selection): upd. (select_accessible_cb): impl. * src/child-listener.c (child_listener_class_init): add children_changed. (child_listener_global_event): emit it. 2002-03-21 Michael Meeks * src/child-listener.c (child_listener_global_event): upd. (child_listener_remove_root), (child_listener_add_root): impl. * src/poke.c (root_died_cb): impl. 2002-03-21 Michael Meeks * src/main.c (application_window): use the child-listener to auto-update. * src/child-listener.[ch]: impl. * src/poke.c (update_if_selection): fix selection viewing. 2002-03-20 Michael Meeks * src/accessible-tree-model.c (accessible_is_base_accessible): impl. 2002-03-20 Michael Meeks * src/poke.c (poke): upd. (get_selection_n_editable), (editable_cut_clicked_cb), (editable_copy_clicked_cb), (editable_delete_clicked_cb), (editable_paste_clicked_cb): impl. (update_text): impl. (expand_clicked_cb): impl. 2002-03-20 Michael Meeks * src/poke.c (update_if_selection): impl. (selection_clear_clicked_cb), (selection_all_clicked_cb): impl. * src/graphics.c (get_glade_xml): impl. 2002-03-19 Michael Meeks * src/poke.c (add_pix_name_column): split out of (init_accessible_tree): here. 2002-03-18 Michael Meeks * src/poke.c (state_names): update for breakage in at-spi, you need HEAD at-spi. * src/graphics.c (role_graphics): ditto. 2002-03-15 Michael Meeks * src/accessible-tree-model.c (accessible_get_path): impl. * src/poke.c (editable_text_changed_cb): impl. (update_if_value): impl. (update_if_text): setup caret spinbutton. (text_carret_changed_cb): impl. (state_set_row_activated_cb): impl. (update_if_accessible): set image. (poke): upd. * src/accessible-tree-model.c (accessible_tree_model_get_value): add icon. (accessible_tree_model_get_path): return NULL for broken paths / fatal exceptions. * src/poke.c (init_accessible_tree): add pixbuf column. 2002-03-14 Michael Meeks * src/accessible-tree-model.c (accessible_tree_model_init): listen for 'childen-changed' (accessible_tree_model_dispose): unlisten for the same. (make_root_path_iter): split out of (accessible_tree_model_new): here. 2002-03-12 Dave Camp * src/poke.c (action_take_clicked): Get the index from the selection and execute the action. 2002-03-12 Michael Meeks * Version 0.0.1 2002-03-12 Michael Meeks * src/accessible-tree-model.c (accessible_tree_model_get_column_type): add Role * src/poke.c (update_if_editable, update_if_text), (editable_text_changed_cb): impl. (init_accessible_tree): split out of (poke): here. 2002-03-12 Michael Meeks * src/poke.c (action_take_clicked): stub. (update_if_action): impl. (poke): upd. 2002-03-12 Michael Meeks * src/poke.c (update_frame_visibility): call an update method per frame. (update_if_accessibile): impl. to sync some accessible state to GUI. (poke): set the selection. (update_if_component): impl. (component_grab_focus_clicked): impl. 2002-03-08 Michael Meeks * poke.c (poke): extend (update_frame_visibility): impl. * glade/at-poke.glade2: upd. 2002-03-08 Michael Meeks * main.c (populate_app_list): clear the store first. (application_window): handle the refresh button. (no_accessible_apps): impl. (main): fork gtk_demo if we don't have anything better to do. * accessible-tree-model.c (accessible_tree_get_from_iter): impl. 2002-03-08 Michael Meeks * accessible-tree-model.c (accessible_tree_model_new): add preconditions. * main.c (app_list_selection_changed): actualy set the selection.