{
if (window->has_buffer)
window->commit_pending = EINA_TRUE;
- window->callback = wl_surface_frame(window->surface);
- wl_callback_add_listener(window->callback, &_frame_listener, window);
+ if (!window->callback)
+ {
+ window->callback = wl_surface_frame(window->surface);
+ wl_callback_add_listener(window->callback, &_frame_listener, window);
+ }
/* Dispatch any state we've been saving along the way */
if (window->pending.geom)
{
EINA_SAFETY_ON_TRUE_RETURN(window->pending.configure);
EINA_SAFETY_ON_TRUE_RETURN(window->commit_pending);
- window->callback = wl_surface_frame(window->surface);
- wl_callback_add_listener(window->callback, &_frame_listener, window);
+ if (!window->callback)
+ {
+ window->callback = wl_surface_frame(window->surface);
+ wl_callback_add_listener(window->callback, &_frame_listener, window);
+ }
wl_surface_commit(window->surface);
ecore_wl2_display_flush(window->display);
if (window->has_buffer)