From: Changyeon Lee Date: Fri, 3 Apr 2020 08:38:13 +0000 (+0900) Subject: e_hwc_window: recover hwc_window even if client is deleted X-Git-Tag: accepted/tizen/unified/20200408.131451~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F88%2F229788%2F1;p=platform%2Fupstream%2Fenlightenment.git e_hwc_window: recover hwc_window even if client is deleted client can be visible even if it is deleted because hide effect Change-Id: I1d2368caf06d851981fb9f96f2747b69a44970d9 --- diff --git a/src/bin/e_hwc_window.c b/src/bin/e_hwc_window.c index f62aa66..6262005 100644 --- a/src/bin/e_hwc_window.c +++ b/src/bin/e_hwc_window.c @@ -403,7 +403,7 @@ _e_hwc_window_client_cb_del(void *data EINA_UNUSED, E_Client *ec) if (!ec->hwc_window) return; if (e_hwc_window_is_video(ec->hwc_window)) return; - e_hwc_window_constraints_reset(ec->hwc_window); + e_hwc_window_client_type_override(ec->hwc_window); } static Eina_Bool @@ -1955,8 +1955,6 @@ _e_hwc_window_client_recover(E_Hwc_Window *hwc_window) ec = hwc_window->ec; if (!ec) return EINA_FALSE; - if (e_object_is_del(E_OBJECT(ec))) return EINA_FALSE; - comp_wl_buffer = _e_hwc_window_comp_wl_buffer_get(hwc_window); if ((!comp_wl_buffer) && @@ -1981,7 +1979,8 @@ _e_hwc_window_client_recover(E_Hwc_Window *hwc_window) e_hwc_window_name_get(hwc_window)); /* force update */ - e_comp_wl_surface_attach(ec, recover_buffer); + if (ec->comp_data) + e_comp_wl_surface_attach(ec, recover_buffer); e_hwc_window_buffer_fetch(hwc_window); @@ -1990,7 +1989,7 @@ _e_hwc_window_client_recover(E_Hwc_Window *hwc_window) e_comp_object_dirty(ec->frame); e_comp_object_render(ec->frame); - if (!comp_wl_buffer) + if (!comp_wl_buffer && ec->comp_data) e_comp_wl_surface_attach(ec, NULL); return EINA_TRUE; @@ -2009,8 +2008,6 @@ _e_hwc_window_rendered_window_set(E_Hwc_Window *hwc_window, Eina_Bool set) ec = hwc_window->ec; if (!ec) return EINA_FALSE; - if (e_object_is_del(E_OBJECT(ec))) return EINA_FALSE; - if (hwc_window->render_target == set) return EINA_TRUE; if (set) @@ -2058,8 +2055,6 @@ e_hwc_window_rendered_window_update(E_Hwc_Window *hwc_window) ec = hwc_window->ec; if (!ec) return EINA_TRUE; - if (e_object_is_del(E_OBJECT(ec))) return EINA_TRUE; - if (hwc_window->is_cursor) pointer = e_pointer_get(hwc_window->ec);