From 1eb563f38a3563e6f135230538d91f7e77f0093b Mon Sep 17 00:00:00 2001 From: Shinwoo Kim Date: Tue, 2 Jul 2019 11:44:08 +0900 Subject: [PATCH] evas_render: add restacked mapped obj to redraws rect MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Summary: We are adding A object area to the redraws rect when object stack is changed from (1) to (2) if A object is not mapped. (1) ┌────────┐ │Object A│┐ └────────┘│ └────────┘ (2) ┌────────┐ │┌────────┐ └│Object B│ └────────┘ But if A object is mapped, then we are adding only part of A object area. (part of A) ┌────────┐ │┌───────┘ └┘ So the result of stack change is (1) not (2). This patch set is adding restacked mapped object to the restack_objects array, after changing the stack of mapped object to add correct redraws rect. Test Plan: Attached example code Reviewers: Hermet, jsuya Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D9183 Change-Id: I571461a9dbf4dd67dd95d68ce47bf7ebef435a7a --- src/lib/evas/canvas/evas_render.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/lib/evas/canvas/evas_render.c b/src/lib/evas/canvas/evas_render.c index 4cd326b..b241664 100644 --- a/src/lib/evas/canvas/evas_render.c +++ b/src/lib/evas/canvas/evas_render.c @@ -810,6 +810,11 @@ _evas_render_phase1_object_mapped(Phase1_Context *p1ctx, _evas_render_phase1_object_process(p1ctx, obj2, obj->restack, EINA_TRUE, src_changed, level + 1); } + + /* Restacked mapped object should be used as a redraw rect. + The "phase 2. force updates for restack" will use restack_objects. */ + if (EINA_UNLIKELY(obj->restack)) + OBJ_ARRAY_PUSH(p1ctx->restack_objects, obj); } static void -- 2.7.4