From: Changyeon Lee Date: Thu, 7 Jan 2021 05:15:43 +0000 (+0900) Subject: e_policy_visibility: don't force update if comp_object is not redirected X-Git-Tag: submit/tizen_6.0/20210108.074845~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=49ef8c875cd0e876c6ac78c9eaacf2a2c87db9b4;p=platform%2Fupstream%2Fenlightenment.git e_policy_visibility: don't force update if comp_object is not redirected if comp_object is not redirected, the compositor doesn't want to update it. for example, if client is composited by hwc, comp_object is not redirected. Change-Id: Ic3affe0b6a81d0ac7a03bb8f15d567c456d9d816 --- diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c index 46e394b0ba..d79bcd3d55 100644 --- a/src/bin/e_comp_object.c +++ b/src/bin/e_comp_object.c @@ -6229,3 +6229,12 @@ e_comp_object_image_filter_get(Evas_Object *obj) return cw->image_filter; } + +EINTERN Eina_Bool +e_comp_object_redirected_get(Evas_Object *obj) +{ + API_ENTRY EINA_FALSE; + EINA_SAFETY_ON_NULL_RETURN_VAL(cw->ec, EINA_FALSE); + + return cw->redirected; +} diff --git a/src/bin/e_comp_object.h b/src/bin/e_comp_object.h index 3434715d9d..800f0c39db 100644 --- a/src/bin/e_comp_object.h +++ b/src/bin/e_comp_object.h @@ -198,6 +198,8 @@ E_API Eina_Bool e_comp_object_native_usable_get(Evas_Object *obj); E_API Eina_Bool e_comp_object_image_filter_set(Evas_Object *obj, E_Comp_Image_Filter filter); EINTERN E_Comp_Image_Filter e_comp_object_image_filter_get(Evas_Object *obj); + +EINTERN Eina_Bool e_comp_object_redirected_get(Evas_Object *obj); #endif #endif diff --git a/src/bin/e_policy_visibility.c b/src/bin/e_policy_visibility.c index 75409ef123..500b0dbf97 100644 --- a/src/bin/e_policy_visibility.c +++ b/src/bin/e_policy_visibility.c @@ -919,9 +919,13 @@ _e_vis_client_cb_buffer_attach(void *data, int type EINA_UNUSED, void *event) /* force update * NOTE: this update can invoke some functions related to visibility grab */ - e_comp_object_damage(ec->frame, 0, 0, ec->w, ec->h); - e_comp_object_dirty(ec->frame); - e_comp_object_render(ec->frame); + /* if comp_object is not redirected, the compositor doesn't want to update it */ + if (e_comp_object_redirected_get(ec->frame)) + { + e_comp_object_damage(ec->frame, 0, 0, ec->w, ec->h); + e_comp_object_dirty(ec->frame); + e_comp_object_render(ec->frame); + } if (vc->grab == grab) vc->grab = NULL;