From 17515f2be90e9289f418a50ddfc3ce4186498d64 Mon Sep 17 00:00:00 2001 From: Zbigniew Kosinski Date: Fri, 18 Jul 2014 11:47:48 +0200 Subject: [PATCH] atspi: Orca is able to read slider value changes Reviewers: stanluk Differential Revision: https://phab.enlightenment.org/D1012 --- src/lib/elm_atspi_bridge.c | 13 +++++++------ src/lib/elm_interface_atspi_accessible.h | 6 ++++++ src/lib/elm_slider.c | 1 + 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/lib/elm_atspi_bridge.c b/src/lib/elm_atspi_bridge.c index b26d54f51..66d63ebb6 100644 --- a/src/lib/elm_atspi_bridge.c +++ b/src/lib/elm_atspi_bridge.c @@ -2723,7 +2723,7 @@ _property_changed_signal_send(void *data, Eo *obj EINA_UNUSED, const Eo_Event_De { Eldbus_Service_Interface *events = data; const char *property = event_info; - char *path, *atspi_desc; + char *atspi_desc; enum _Atspi_Object_Property prop = ATSPI_OBJECT_PROPERTY_LAST; if (!events) @@ -2752,7 +2752,11 @@ _property_changed_signal_send(void *data, Eo *obj EINA_UNUSED, const Eo_Event_De prop = ATSPI_OBJECT_PROPERTY_PARENT; atspi_desc = "accessible-role"; } - + else if (!strcmp(property, "value")) + { + prop = ATSPI_OBJECT_PROPERTY_VALUE; + atspi_desc = "accessible-value"; + } if (prop == ATSPI_OBJECT_PROPERTY_LAST) { ERR("Unrecognized property name!"); @@ -2764,10 +2768,7 @@ _property_changed_signal_send(void *data, Eo *obj EINA_UNUSED, const Eo_Event_De return EINA_FALSE; } - path = _path_from_access_object(obj); - - _object_signal_send(events, ATSPI_OBJECT_EVENT_PROPERTY_CHANGED, atspi_desc, 0, 0, "s", path); - free(path); + _object_signal_send(events, ATSPI_OBJECT_EVENT_PROPERTY_CHANGED, atspi_desc, 0, 0, NULL, NULL); DBG("signal sent PropertyChanged:%s", property); diff --git a/src/lib/elm_interface_atspi_accessible.h b/src/lib/elm_interface_atspi_accessible.h index 6dc62904d..0cfdaa7e1 100644 --- a/src/lib/elm_interface_atspi_accessible.h +++ b/src/lib/elm_interface_atspi_accessible.h @@ -287,6 +287,12 @@ void elm_atspi_attributes_list_free(Eina_List *list); #define elm_interface_atspi_accessible_role_changed_signal_emit(obj) \ eo_do(obj, eo_event_callback_call(ELM_INTERFACE_ATSPI_ACCESSIBLE_EVENT_PROPERTY_CHANGED, "role")); +/** + * Emits ATSPI 'PropertyChanged' dbus signal for 'Value' property. + */ +#define elm_interface_atspi_accessible_value_changed_signal_emit(obj) \ + eo_do(obj, eo_event_callback_call(ELM_INTERFACE_ATSPI_ACCESSIBLE_EVENT_PROPERTY_CHANGED, "value")); + /** * Emits ATSPI 'ChildrenChanged' dbus signal with added child as argument. */ diff --git a/src/lib/elm_slider.c b/src/lib/elm_slider.c index d3ea968af..64d4e1d08 100644 --- a/src/lib/elm_slider.c +++ b/src/lib/elm_slider.c @@ -98,6 +98,7 @@ _val_fetch(Evas_Object *obj, Eina_Bool user_event) if (user_event) { evas_object_smart_callback_call(obj, SIG_CHANGED, NULL); + elm_interface_atspi_accessible_value_changed_signal_emit(obj); ecore_timer_del(sd->delay); sd->delay = ecore_timer_add(SLIDER_DELAY_CHANGED_INTERVAL, _delay_change, obj); } -- 2.34.1