From c8cda37e28307ad195996ad54b9ee1680cca3ec3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Pi=C3=B1eiro?= Date: Wed, 24 Sep 2014 19:40:51 +0200 Subject: Aggressively filtering AddChildren with STATE_MANAGES_DESCENDANTS --- atk-adaptor/event.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/atk-adaptor/event.c b/atk-adaptor/event.c index 42d359d..dbfa9dc 100644 --- a/atk-adaptor/event.c +++ b/atk-adaptor/event.c @@ -1067,11 +1067,22 @@ children_changed_event_listener (GSignalInvocationHint * signal_hint, AtkObject *accessible, *ao=NULL; gpointer child; + AtkStateSet *set; + gboolean ret; g_signal_query (signal_hint->signal_id, &signal_query); name = signal_query.signal_name; + /* If the accessible is on STATE_MANAGES_DESCENDANTS state, + children-changed signal are not forwarded. */ accessible = ATK_OBJECT (g_value_get_object (¶m_values[0])); + set = atk_object_ref_state_set (accessible); + ret = atk_state_set_contains_state (set, ATK_STATE_MANAGES_DESCENDANTS); + g_object_unref (set); + + if (ret) + return TRUE; + minor = g_quark_to_string (signal_hint->detail); detail1 = g_value_get_uint (param_values + 1); -- cgit v1.2.1