2003-02-14 Padraig O'Briain <padraig.obriain@sun.com>
+ * atk-bridge/bridge.c
+ (spi_atk_bridge_init_event_type_consts): Look up "link-selected" for
+ AtkHypertext
+ (spi_atk_register_event_listener): Add signal listener for
+ link-selected
+ (spi_atk_bridge_signal_listener): Event event when link-selected
+ signal is emitted. (bug #104622)
+
+ * cspi/spi_event.c (cspi_internal_event_get_text): Call g_strdup()
+ on returned string. (bug #105291)
+
+ * test/event-listener-test.c: Add test for link-selected.
+
+2003-02-14 Padraig O'Briain <padraig.obriain@sun.com>
+
* atk-bridge/Makefile.am: Correct typo in previous commit.
2003-02-13 Padraig O'Briain <padraig.obriain@sun.com>
* AT-SPI - Assistive Technology Service Provider Interface
* (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
*
- * Copyright 2001, 2002 Sun Microsystems Inc.,
- * Copyright 2001, 2002 Ximian, Inc.
+ * Copyright 2001, 2002, 2003 Sun Microsystems Inc.,
+ * Copyright 2001, 2002, 2003 Ximian, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
static guint atk_signal_column_deleted;
*/
+static guint atk_signal_link_selected;
+
static Accessibility_Registry spi_atk_bridge_get_registry (void);
static void spi_atk_bridge_do_registration (void);
static void spi_atk_bridge_toplevel_added (AtkObject *object,
atk_signal_active_descendant_changed =
g_signal_lookup ("active_descendant_changed",
ATK_TYPE_OBJECT);
+ atk_signal_link_selected = g_signal_lookup ("link_selected",
+ ATK_TYPE_HYPERTEXT);
}
static int
add_signal_listener ("Gtk:AtkTable:column-reordered");
add_signal_listener ("Gtk:AtkTable:column-deleted");
add_signal_listener ("Gtk:AtkTable:model-changed");
+ add_signal_listener ("Gtk:AtkHypertext:link-selected");
/*
* May add the following listeners to implement preemptive key listening for GTK+
*
c_obj = BONOBO_OBJREF (s_ao);
spi_init_any_object (&any, &c_obj);
}
+ else if (signal_query.signal_id == atk_signal_link_selected)
+ {
+ if (G_VALUE_TYPE (param_values + 1) == G_TYPE_INT)
+ detail1 = g_value_get_int (param_values + 1);
+ spi_init_any_nil (&any);
+ }
else
{
if (G_VALUE_TYPE (param_values + 1) == G_TYPE_INT)
* AT-SPI - Assistive Technology Service Provider Interface
* (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
*
- * Copyright 2001, 2002 Sun Microsystems Inc.,
- * Copyright 2001, 2002 Ximian, Inc.
+ * Copyright 2001, 2002, 2003 Sun Microsystems Inc.,
+ * Copyright 2001, 2002, 2003 Ximian, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
any = (CORBA_any *) e->data;
if (CORBA_TypeCode_equivalent (any->_type, TC_CORBA_string, NULL))
{
- return * (char **) any->_value;
+ return g_strdup (* (char **) any->_value);
}
else
{
* AT-SPI - Assistive Technology Service Provider Interface
* (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
*
- * Copyright 2001, 2002 Sun Microsystems Inc.,
- * Copyright 2001, 2002 Ximian, Inc.
+ * Copyright 2001, 2002, 2003 Sun Microsystems Inc.,
+ * Copyright 2001, 2002, 2003 Ximian, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
static void report_event (const AccessibleEvent *event, void *user_data);
static void report_detail_event (const AccessibleEvent *event, void *user_data);
+static void report_detail1_event (const AccessibleEvent *event, void *user_data);
static void report_text_event (const AccessibleEvent *event, void *user_data);
static void timing_test_event (const AccessibleEvent *event, void *user_data);
static SPIBoolean report_mouse_event (const AccessibleDeviceEvent *event, void *user_data);
static AccessibleEventListener *generic_listener;
static AccessibleEventListener *specific_listener;
+static AccessibleEventListener *detail1_listener;
static AccessibleEventListener *test_listener;
static AccessibleEventListener *text_listener;
static AccessibleDeviceListener *mouse_device_listener;
timing_test_event, NULL);
mouse_device_listener = SPI_createAccessibleDeviceListener (
report_mouse_event, NULL);
+ detail1_listener = SPI_createAccessibleEventListener (
+ report_detail1_event, NULL);
SPI_registerGlobalEventListener (generic_listener,
"focus:");
"object:row-deleted");
SPI_registerGlobalEventListener (generic_listener,
"object:model-changed");
+ SPI_registerGlobalEventListener (detail1_listener,
+ "object:link-selected");
SPI_registerGlobalEventListener (generic_listener,
"window:minimize");
SPI_registerGlobalEventListener (generic_listener,
}
void
+report_detail1_event (const AccessibleEvent *event, void *user_data)
+{
+ char *s = Accessible_getName (event->source);
+ fprintf (stderr, "(detail) %s %s %d\n", event->type, s,
+ event->detail1);
+ if (s) SPI_freeString (s);
+}
+
+void
report_text_event (const AccessibleEvent *event, void *user_data)
{
char *s = Accessible_getName (event->source);