DEBUG("purging %p because of defunct state or window doesn't exist", wi->window);
return EINA_TRUE;
}
- AtspiComponent *comp = atspi_accessible_get_component_iface(wi->window);
- if (!comp) {
- DEBUG("purging %p because of not component", wi->window);
- return EINA_TRUE;
- }
- GError *err = NULL;
- AtspiRect *rect = atspi_component_get_extents(comp, ATSPI_COORD_TYPE_SCREEN, &err);
- g_object_unref(comp);
- GERROR_CHECK(err);
- if (!rect) {
- DEBUG("purging because failed to get extents");
- return EINA_TRUE;
- }
- g_free(rect);
+
return EINA_FALSE;
}
static void _purge_windows_list(WindowTrackerData *wtd)
{
+ static Eina_Bool is_purging = EINA_FALSE;
+
+ if (is_purging)
+ return;
+
+ is_purging = EINA_TRUE;
+
DEBUG("purging");
WindowInfo *wi;
Eina_List *l, *l_prev;
if (!wi_top)
app_tracker_null_context_switch(wtd->user_data);
}
+
+ is_purging = EINA_FALSE;
}
static bool _window_extents_get(AtspiAccessible *window, AtspiRect *extents)