Ack rotation done to wm after finishing make rotated frame.
Change-Id: I28bfa493379ae21cdfd9995d334ec890c928b401
wdata->wm_rot.done = 1;
- /* Fixme: rotation done send move to render flush */
- if (!ee->prop.wm_rot.manual_mode.set)
- {
- wdata->wm_rot.request = 0;
- wdata->wm_rot.done = 0;
- ecore_wl_window_rotation_change_done_send(wdata->win);
- }
-
return ECORE_CALLBACK_PASS_ON;
}
ecore_evas_manual_render_set(ee, 1);
}
+void
+_ecore_evas_wl_common_render_flush_post(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) && (wdata->wm_rot.done) &&
+ (!ee->prop.wm_rot.manual_mode.set))
+ {
+ wdata->wm_rot.request = 0;
+ wdata->wm_rot.done = 0;
+ ecore_wl_window_rotation_change_done_send(wdata->win);
+ }
+}
+
void
_ecore_evas_wl_common_render_updates(void *data, Evas *evas EINA_UNUSED, void *event)
{
evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_FLUSH_PRE,
_ecore_evas_wl_common_render_flush_pre, ee);
+ evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_FLUSH_POST,
+ _ecore_evas_wl_common_render_flush_post, ee);
/* FIXME: This needs to be set based on theme & scale */
if (ee->prop.draw_frame)
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_flush_pre(void *data, Evas *evas EINA_UNUSED, void *event);
+void _ecore_evas_wl_common_render_flush_post(void *data, Evas *evas EINA_UNUSED, void *event);
void _ecore_evas_wl_common_render_updates(void *data, Evas *evas, void *event);
void _ecore_evas_wl_common_rotation_set(Ecore_Evas *ee, int rotation, int resize);
void _ecore_evas_wl_common_borderless_set(Ecore_Evas *ee, Eina_Bool on);
evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_FLUSH_PRE,
_ecore_evas_wl_common_render_flush_pre, ee);
+ evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_FLUSH_POST,
+ _ecore_evas_wl_common_render_flush_post, ee);
/* FIXME: This needs to be set based on theme & scale */
if (ee->prop.draw_frame)