-static void
-send_children_changed (AtspiAccessible *parent, AtspiAccessible *child, gboolean add)
-{
- AtspiEvent e;
-
- memset (&e, 0, sizeof (e));
- e.type = (add? "object:children-changed:add": "object:children-changed:remove");
- e.source = parent;
- e.detail1 = g_list_index (parent->children, child);
- e.detail2 = 0;
- _atspi_send_event (&e);
-}
-
-static void
-unref_object_and_descendants (AtspiAccessible *obj)
-{
- GList *l;
-
- for (l = obj->children; l; l = l->next)
- {
- unref_object_and_descendants (l->data);
- }
- g_object_unref (obj);
-}
-
-static gboolean
-remove_app_from_desktop (AtspiAccessible *a, const char *bus_name)
-{
- GList *l;
- AtspiAccessible *child;
-
- for (l = a->children; l; l = l->next)
- {
- child = l->data;
- if (!strcmp (bus_name, child->parent.app->bus_name)) break;
- }
- if (!l)
- {
- return FALSE;
- }
- send_children_changed (a, child, FALSE);
- a->children = g_list_remove (a->children, child);
- unref_object_and_descendants (child);
- return TRUE;
-}
-