summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShinwoo Kim <cinoo.kim@samsung.com>2019-07-09 12:01:22 +0900
committerShinwoo Kim <cinoo.kim@samsung.com>2019-07-09 12:05:36 +0900
commitc8827c0dccff99db8aff2c0eb35a73614db296f6 (patch)
tree9be0612144c9ec95b1ed15bc0ea1b55cecfac9b8
parent9b1152b0cce98645cdc0d759146f01d30690f8b0 (diff)
evas_render: add restacked mapped obj to redraws rect
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: {F3727281} {F3727280} {F3727279} (1) Build and Run attached example on software_x11 engine (2) Mouse down on upper image - the image starts to use map. (3) Then mouse up - upper image should go under the below image. But, the changed result is NOT rendered. Reviewers: Hermet, jsuya, zmike Reviewed By: zmike Subscribers: zmike, cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D9183
-rw-r--r--src/lib/evas/canvas/evas_render.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/lib/evas/canvas/evas_render.c b/src/lib/evas/canvas/evas_render.c
index feaf5b214a..87934be5e4 100644
--- a/src/lib/evas/canvas/evas_render.c
+++ b/src/lib/evas/canvas/evas_render.c
@@ -804,6 +804,11 @@ _evas_render_phase1_object_mapped(Phase1_Context *p1ctx,
804 _evas_render_phase1_object_process(p1ctx, obj2, obj->restack, 804 _evas_render_phase1_object_process(p1ctx, obj2, obj->restack,
805 EINA_TRUE, src_changed, level + 1); 805 EINA_TRUE, src_changed, level + 1);
806 } 806 }
807
808 /* Restacked mapped object should be used as a redraw rect.
809 The "phase 2. force updates for restack" will use restack_objects. */
810 if (EINA_UNLIKELY(obj->restack))
811 OBJ_ARRAY_PUSH(p1ctx->restack_objects, obj);
807} 812}
808 813
809static void 814static void