From: Paweł Stawicki Date: Fri, 12 May 2017 11:37:11 +0000 (+0200) Subject: atspi: send window activated event to at_spi2 only once per session X-Git-Tag: submit/tizen_3.0/20170626.041320~19 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4e4842cc70fbc8ae8eaabfb9d66acfacf5432fb0;p=platform%2Fupstream%2Felementary.git atspi: send window activated event to at_spi2 only once per session Change-Id: Ibae523e85c8fa2cdf3d9d8145e99274f1b318db1 --- diff --git a/src/lib/elm_atspi_bridge.c b/src/lib/elm_atspi_bridge.c index 40c495983..8687c63d3 100644 --- a/src/lib/elm_atspi_bridge.c +++ b/src/lib/elm_atspi_bridge.c @@ -120,7 +120,8 @@ typedef struct _Elm_Atspi_Bridge_Data Eina_Bool connected : 1; // TIZEN_ONLY(20160802): do not handle events if the window is not activated Eina_Bool window_activated : 1; - // + // TIZEN_ONLY(20170512): send window activated event to at_spi2 only once per session + Eina_Bool window_activated_broadcast_needed : 1; //TIZEN_ONLY(20161027) - Export elm_atspi_bridge_utils_is_screen_reader_enabled Eina_Bool screen_reader_enabled : 1; // @@ -4575,14 +4576,24 @@ _bridge_cache_build(Eo *bridge, void *obj) { if (STATE_TYPE_GET(ss, ELM_ATSPI_STATE_ACTIVE)) { - _window_signal_send(bridge, obj, ELM_INTERFACE_ATSPI_WINDOW_EVENT_WINDOW_ACTIVATED, NULL); + // TIZEN_ONLY(20170512): send window activated event to at_spi2 only once per session + if(pd->window_activated_broadcast_needed) + { + _window_signal_send(bridge, obj, ELM_INTERFACE_ATSPI_WINDOW_EVENT_WINDOW_ACTIVATED, NULL); + pd->window_activated_broadcast_needed = EINA_FALSE; + } // TIZEN_ONLY(20160802): do not handle events if the window is not activated pd->window_activated = EINA_TRUE; // } else { - _window_signal_send(bridge, obj, ELM_INTERFACE_ATSPI_WINDOW_EVENT_WINDOW_DEACTIVATED, NULL); + // TIZEN_ONLY(20170512): send window activated event to at_spi2 only once per session + if(pd->window_activated_broadcast_needed) + { + _window_signal_send(bridge, obj, ELM_INTERFACE_ATSPI_WINDOW_EVENT_WINDOW_DEACTIVATED, NULL); + pd->window_activated_broadcast_needed = EINA_FALSE; + } // TIZEN_ONLY(20160802): do not handle events if the window is not activated pd->window_activated = EINA_FALSE; // @@ -4790,6 +4801,9 @@ static void _a11y_connection_init(Eo *bridge) if (is_connected) return; + // TIZEN_ONLY(20170512): send window activated event to at_spi2 only once per session + pd->window_activated_broadcast_needed = EINA_TRUE; + Eldbus_Message *m = eldbus_object_method_call_new(pd->bus_obj, A11Y_DBUS_INTERFACE, "GetAddress"); Eldbus_Pending *p = eldbus_object_send(pd->bus_obj, m, _a11y_bus_address_get, bridge, 100);