This fixes efl_add(WIN) on wayland, using an internal API.
Test scenario:
ELM_DISPLAY=wl elementary_test -to "Part Shadow"
_elm_win_frame_style_update(sd, 0, 1);
}
+static Eina_Value
+_win_finalize_job_cb(void *data, const Eina_Value value)
+{
+ Evas *eo_e = evas_object_evas_get(data);
+ evas_render_pending_objects_flush(eo_e);
+ return value;
+}
+
static Eo *
_elm_win_finalize_internal(Eo *obj, Efl_Ui_Win_Data *sd, const char *name, Efl_Ui_Win_Type type)
{
_elm_win_resize_job(obj);
_elm_win_move(sd->ee);
}
+ else
+ {
+ eina_future_then_easy(efl_loop_job(efl_loop_get(obj)),
+ .success = _win_finalize_job_cb, .data = obj);
+ }
// All normal windows are "standard" windows with EO API
if (!sd->legacy.ctor)
EAPI Eina_Bool efl_canvas_output_lock(Efl_Canvas_Output *output);
EAPI Eina_Bool efl_canvas_output_unlock(Efl_Canvas_Output *output);
+EAPI void evas_render_pending_objects_flush(Evas *eo_evas);
+
EAPI void efl_input_pointer_finalize(Efl_Input_Pointer *obj);
static inline void
eina_evlog("-render_pre_objects_finalize", eo_e, 0.0, NULL);
}
+EAPI void
+evas_render_pending_objects_flush(Evas *eo_e)
+{
+ Evas_Public_Data *evas = efl_data_scope_get(eo_e, EVAS_CANVAS_CLASS);
+ EINA_SAFETY_ON_NULL_RETURN(evas);
+ evas_render_pre(eo_e, evas);
+}
+
static Eina_Bool
evas_render_updates_internal_loop(Evas *eo_e, Evas_Public_Data *evas,
void *output, void *surface, void *context,