forked from enlightenment/efl
ecore-evas-wayland: Move configure acknowledge to render_flush_pre
If we acknowledge a configure from xdg during post render, we end up breaking maximize of EFL clients inside Weston (and perhaps other compositors). In order to fix that, we will now send the configure ack post render but pre flush. @fix Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This commit is contained in:
parent
18b66a3192
commit
abbfde9d68
|
@ -1310,6 +1310,18 @@ _ecore_evas_wl_common_render_pre(void *data, Evas *evas EINA_UNUSED, void *event
|
|||
ecore_evas_manual_render_set(ee, 1);
|
||||
}
|
||||
|
||||
void
|
||||
_ecore_evas_wl_common_render_flush_pre(void *data, Evas *evas EINA_UNUSED, void *event EINA_UNUSED)
|
||||
{
|
||||
Ecore_Evas *ee = data;
|
||||
Ecore_Evas_Engine_Wl_Data *wdata;
|
||||
|
||||
wdata = ee->engine.data;
|
||||
if (wdata->win->configure_ack)
|
||||
wdata->win->configure_ack(wdata->win->xdg_surface,
|
||||
wdata->win->configure_serial);
|
||||
}
|
||||
|
||||
void
|
||||
_ecore_evas_wl_common_render_updates(void *data, Evas *evas EINA_UNUSED, void *event)
|
||||
{
|
||||
|
@ -1342,15 +1354,8 @@ _ecore_evas_wl_common_render_updates(void *data, Evas *evas EINA_UNUSED, void *e
|
|||
void
|
||||
_ecore_evas_wl_common_post_render(Ecore_Evas *ee)
|
||||
{
|
||||
Ecore_Evas_Engine_Wl_Data *wdata;
|
||||
|
||||
LOGFN(__FILE__, __LINE__, __FUNCTION__);
|
||||
|
||||
wdata = ee->engine.data;
|
||||
if (wdata->win->configure_ack)
|
||||
wdata->win->configure_ack(wdata->win->xdg_surface,
|
||||
wdata->win->configure_serial);
|
||||
|
||||
_ecore_evas_idle_timeout_update(ee);
|
||||
if (ee->func.fn_post_render) ee->func.fn_post_render(ee);
|
||||
}
|
||||
|
|
|
@ -236,6 +236,9 @@ ecore_evas_wayland_egl_new_internal(const char *disp_name, unsigned int parent,
|
|||
evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_PRE,
|
||||
_ecore_evas_wl_common_render_pre, ee);
|
||||
|
||||
evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_FLUSH_PRE,
|
||||
_ecore_evas_wl_common_render_flush_pre, ee);
|
||||
|
||||
/* FIXME: This needs to be set based on theme & scale */
|
||||
if (ee->prop.draw_frame)
|
||||
evas_output_framespace_set(ee->evas, fx, fy, fw, fh);
|
||||
|
|
|
@ -75,6 +75,7 @@ int _ecore_evas_wl_common_pre_render(Ecore_Evas *ee);
|
|||
/* int _ecore_evas_wl_common_render_updates(Ecore_Evas *ee); */
|
||||
void _ecore_evas_wl_common_post_render(Ecore_Evas *ee);
|
||||
int _ecore_evas_wl_common_render(Ecore_Evas *ee);
|
||||
void _ecore_evas_wl_common_render_flush_pre(void *data, Evas *evas EINA_UNUSED, void *event EINA_UNUSED);
|
||||
void _ecore_evas_wl_common_screen_geometry_get(const Ecore_Evas *ee, int *x, int *y, int *w, int *h);
|
||||
void _ecore_evas_wl_common_screen_dpi_get(const Ecore_Evas *ee, int *xdpi, int *ydpi);
|
||||
void _ecore_evas_wl_common_render_pre(void *data, Evas *evas EINA_UNUSED, void *event);
|
||||
|
|
|
@ -232,6 +232,9 @@ ecore_evas_wayland_shm_new_internal(const char *disp_name, unsigned int parent,
|
|||
evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_PRE,
|
||||
_ecore_evas_wl_common_render_pre, ee);
|
||||
|
||||
evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_FLUSH_PRE,
|
||||
_ecore_evas_wl_common_render_flush_pre, ee);
|
||||
|
||||
/* FIXME: This needs to be set based on theme & scale */
|
||||
if (ee->prop.draw_frame)
|
||||
evas_output_framespace_set(ee->evas, fx, fy, fw, fh);
|
||||
|
|
Loading…
Reference in New Issue