{
E_Hwc_Window *hwc_window = NULL;
Eina_Bool update_changes = EINA_FALSE;
- const Eina_List *l;
+ const Eina_List *l, *ll;
if (hwc->property_changed)
{
if (_e_hwc_windows_device_state_available_update(hwc))
update_changes = EINA_TRUE;
- EINA_LIST_FOREACH(hwc->hwc_windows, l, hwc_window)
+ EINA_LIST_FOREACH_SAFE(hwc->hwc_windows, l, ll, hwc_window)
{
if (e_hwc_window_is_target(hwc_window)) continue;
+ e_hwc_window_ref(hwc_window);
+
/* fetch the window buffer */
if (e_hwc_window_buffer_fetch(hwc_window))
update_changes = EINA_TRUE;
if (e_hwc_window_device_state_available_update(hwc_window))
update_changes = EINA_TRUE;
+
+ e_hwc_window_unref(hwc_window);
}
if (hwc->primary_output)