}
static Eina_Bool
-_e_hwc_window_client_recover(E_Hwc_Window *hwc_window)
+_e_hwc_window_client_recover(E_Hwc_Window *hwc_window, Eina_Bool *clear_attach)
{
E_Comp_Wl_Buffer *recover_buffer = NULL;;
E_Comp_Wl_Buffer *comp_wl_buffer;
e_comp_object_render(ec->frame);
}
- if (!comp_wl_buffer && ec->comp_data)
- e_comp_wl_surface_attach(ec, NULL);
+ if (clear_attach)
+ {
+ if (!comp_wl_buffer)
+ *clear_attach = EINA_TRUE;
+ else
+ *clear_attach = EINA_FALSE;
+ }
return EINA_TRUE;
}
{
E_Client *ec = NULL;
Eina_Bool ret;
+ Eina_Bool clear_attach = EINA_FALSE;
EINA_SAFETY_ON_NULL_RETURN_VAL(hwc_window, EINA_FALSE);
if (set)
{
- ret = _e_hwc_window_client_recover(hwc_window);
+ ret = _e_hwc_window_client_recover(hwc_window, &clear_attach);
if (hwc_window->ec->redirected)
{
EHWTRACE("Redirect -- {%s}",
hwc_window->ec, hwc_window->hwc, hwc_window, e_hwc_window_name_get(hwc_window));
}
+
+ if (clear_attach && ec->comp_data)
+ e_comp_wl_surface_attach(ec, NULL);
}
else
{