evas_render: Process deferred callback in the sync render case.
authorWoochanlee <wc0917.lee@samsung.com>
Wed, 27 Mar 2019 04:11:15 +0000 (13:11 +0900)
committerJunsuChoi <jsuya.choi@samsung.com>
Tue, 2 Apr 2019 03:55:30 +0000 (12:55 +0900)
Summary:
The EVAS_CALLBACK_RENDER_POST callback has been deferred when the callback is registered during the render(inside_post_render flag on).

In the sync render case, the logic to call deferred callbacks is missing, and callbacks are not being called in certain cases.

@fix

Reviewers: ManMower, Hermet

Reviewed By: Hermet

Subscribers: zmike, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8478

src/lib/evas/canvas/evas_render.c

index 65640ba..bfe7dd5 100644 (file)
@@ -3655,6 +3655,7 @@ evas_render_updates_internal(Evas *eo_e,
                     if (out->output)
                       ENFN->output_flush(ENC, out->output, EVAS_RENDER_MODE_SYNC);
                   _cb_always_call(eo_e, EVAS_CALLBACK_RENDER_FLUSH_POST, NULL);
+                  _deferred_callbacks_process(eo_e, evas);
                   eina_evlog("-render_output_flush", eo_e, 0.0, NULL);
                }
           }