e_comp_object: Quick fix for video punching issue 96/289596/1
authorSeunghun Lee <shiin.lee@samsung.com>
Fri, 10 Mar 2023 00:16:04 +0000 (09:16 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Fri, 10 Mar 2023 06:31:00 +0000 (15:31 +0900)
Applying render copy operation to smart object of video view didn't get
to take effect immediately after calling e_comp_object_mask_set() for
some reason. And it caused a visual glitch that the video view didn't
get displayed for a while.

Calling e_comp_object_mask_set(), the size of a rectangle object called
mask object must be 0x0 because there is obviously no
evas_object_resize() with this object. It would not be able to make evas
update its view. But it should be different for changing render
operation on smart object of video view. It should make some changes on
evas and make evas update its view. But it doesn't seem to work this
way. I'm not entirely sure, but it seems a bug in evas. Yet, I could be
wrong.

Since calling evas_object_resize() with the mask object seems to resolve
the issue, so let's avoid the issue with this way.
After all, calling evas_object_resize() with the mask object in
e_comp_object_mask_set() does make sense, and I don't see any side
effect in it.

Note that we might need to make another patch for this problem because
it's not the solution to get rid of root cause of the issue.

Change-Id: I04037517c30812f4120b9c024cea349e36723d71

src/bin/e_comp_object.c

index 88f5727..5d74c93 100644 (file)
@@ -5625,6 +5625,7 @@ e_comp_object_mask_set(Evas_Object *obj, Eina_Bool set)
              evas_object_clip_set(o, cw->clip);
              evas_object_smart_member_add(o, obj);
              evas_object_move(o, 0, 0);
+             evas_object_resize(o, cw->w, cw->h);
              /* save render op value to restore when clear a mask.
               *
               * NOTE: DO NOT change the render op on ec->frame while mask object