forked from enlightenment/efl
win: Show windows created by efl_add with a job
This fixes efl_add(WIN) on wayland, using an internal API. Test scenario: ELM_DISPLAY=wl elementary_test -to "Part Shadow"
This commit is contained in:
parent
ea63f487d3
commit
0f1469280d
|
@ -4735,6 +4735,14 @@ _indicator_del(Efl_Ui_Win_Data *sd)
|
||||||
_elm_win_frame_style_update(sd, 0, 1);
|
_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 *
|
static Eo *
|
||||||
_elm_win_finalize_internal(Eo *obj, Efl_Ui_Win_Data *sd, const char *name, Efl_Ui_Win_Type type)
|
_elm_win_finalize_internal(Eo *obj, Efl_Ui_Win_Data *sd, const char *name, Efl_Ui_Win_Type type)
|
||||||
{
|
{
|
||||||
|
@ -5421,6 +5429,11 @@ _elm_win_finalize_internal(Eo *obj, Efl_Ui_Win_Data *sd, const char *name, Efl_U
|
||||||
_elm_win_resize_job(obj);
|
_elm_win_resize_job(obj);
|
||||||
_elm_win_move(sd->ee);
|
_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
|
// All normal windows are "standard" windows with EO API
|
||||||
if (!sd->legacy.ctor)
|
if (!sd->legacy.ctor)
|
||||||
|
|
|
@ -46,6 +46,8 @@ EAPI Evas_Engine_Info *efl_canvas_output_engine_info_get(Efl_Canvas_Output *outp
|
||||||
EAPI Eina_Bool efl_canvas_output_lock(Efl_Canvas_Output *output);
|
EAPI Eina_Bool efl_canvas_output_lock(Efl_Canvas_Output *output);
|
||||||
EAPI Eina_Bool efl_canvas_output_unlock(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);
|
EAPI void efl_input_pointer_finalize(Efl_Input_Pointer *obj);
|
||||||
|
|
||||||
static inline void
|
static inline void
|
||||||
|
|
|
@ -2892,6 +2892,14 @@ evas_render_pre(Evas *eo_e, Evas_Public_Data *evas)
|
||||||
eina_evlog("-render_pre_objects_finalize", eo_e, 0.0, NULL);
|
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
|
static Eina_Bool
|
||||||
evas_render_updates_internal_loop(Evas *eo_e, Evas_Public_Data *evas,
|
evas_render_updates_internal_loop(Evas *eo_e, Evas_Public_Data *evas,
|
||||||
void *output, void *surface, void *context,
|
void *output, void *surface, void *context,
|
||||||
|
|
Loading…
Reference in New Issue