summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/lib/elementary/efl_ui_win.c13
-rw-r--r--src/lib/evas/Evas_Internal.h2
-rw-r--r--src/lib/evas/canvas/evas_render.c8
3 files changed, 23 insertions, 0 deletions
diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c
index 926e4249b8..bcb75c9d30 100644
--- a/src/lib/elementary/efl_ui_win.c
+++ b/src/lib/elementary/efl_ui_win.c
@@ -4735,6 +4735,14 @@ _indicator_del(Efl_Ui_Win_Data *sd)
4735 _elm_win_frame_style_update(sd, 0, 1); 4735 _elm_win_frame_style_update(sd, 0, 1);
4736} 4736}
4737 4737
4738static Eina_Value
4739_win_finalize_job_cb(void *data, const Eina_Value value)
4740{
4741 Evas *eo_e = evas_object_evas_get(data);
4742 evas_render_pending_objects_flush(eo_e);
4743 return value;
4744}
4745
4738static Eo * 4746static Eo *
4739_elm_win_finalize_internal(Eo *obj, Efl_Ui_Win_Data *sd, const char *name, Efl_Ui_Win_Type type) 4747_elm_win_finalize_internal(Eo *obj, Efl_Ui_Win_Data *sd, const char *name, Efl_Ui_Win_Type type)
4740{ 4748{
@@ -5421,6 +5429,11 @@ _elm_win_finalize_internal(Eo *obj, Efl_Ui_Win_Data *sd, const char *name, Efl_U
5421 _elm_win_resize_job(obj); 5429 _elm_win_resize_job(obj);
5422 _elm_win_move(sd->ee); 5430 _elm_win_move(sd->ee);
5423 } 5431 }
5432 else
5433 {
5434 eina_future_then_easy(efl_loop_job(efl_loop_get(obj)),
5435 .success = _win_finalize_job_cb, .data = obj);
5436 }
5424 5437
5425 // All normal windows are "standard" windows with EO API 5438 // All normal windows are "standard" windows with EO API
5426 if (!sd->legacy.ctor) 5439 if (!sd->legacy.ctor)
diff --git a/src/lib/evas/Evas_Internal.h b/src/lib/evas/Evas_Internal.h
index 09cc2c8f4e..5dcf351066 100644
--- a/src/lib/evas/Evas_Internal.h
+++ b/src/lib/evas/Evas_Internal.h
@@ -46,6 +46,8 @@ EAPI Evas_Engine_Info *efl_canvas_output_engine_info_get(Efl_Canvas_Output *outp
46EAPI Eina_Bool efl_canvas_output_lock(Efl_Canvas_Output *output); 46EAPI Eina_Bool efl_canvas_output_lock(Efl_Canvas_Output *output);
47EAPI Eina_Bool efl_canvas_output_unlock(Efl_Canvas_Output *output); 47EAPI Eina_Bool efl_canvas_output_unlock(Efl_Canvas_Output *output);
48 48
49EAPI void evas_render_pending_objects_flush(Evas *eo_evas);
50
49EAPI void efl_input_pointer_finalize(Efl_Input_Pointer *obj); 51EAPI void efl_input_pointer_finalize(Efl_Input_Pointer *obj);
50 52
51static inline void 53static inline void
diff --git a/src/lib/evas/canvas/evas_render.c b/src/lib/evas/canvas/evas_render.c
index 2a46387737..8da9ed8116 100644
--- a/src/lib/evas/canvas/evas_render.c
+++ b/src/lib/evas/canvas/evas_render.c
@@ -2892,6 +2892,14 @@ evas_render_pre(Evas *eo_e, Evas_Public_Data *evas)
2892 eina_evlog("-render_pre_objects_finalize", eo_e, 0.0, NULL); 2892 eina_evlog("-render_pre_objects_finalize", eo_e, 0.0, NULL);
2893} 2893}
2894 2894
2895EAPI void
2896evas_render_pending_objects_flush(Evas *eo_e)
2897{
2898 Evas_Public_Data *evas = efl_data_scope_get(eo_e, EVAS_CANVAS_CLASS);
2899 EINA_SAFETY_ON_NULL_RETURN(evas);
2900 evas_render_pre(eo_e, evas);
2901}
2902
2895static Eina_Bool 2903static Eina_Bool
2896evas_render_updates_internal_loop(Evas *eo_e, Evas_Public_Data *evas, 2904evas_render_updates_internal_loop(Evas *eo_e, Evas_Public_Data *evas,
2897 void *output, void *surface, void *context, 2905 void *output, void *surface, void *context,