{
E_Xdg_Surface *exsurf;
E_Xdg_Surface_Configure *configure;
+ Eina_Bool wait_ack = EINA_FALSE;
exsurf = data;
goto end;
}
- exsurf->configure_list = eina_list_append(exsurf->configure_list, configure);
configure->serial = wl_display_next_serial(e_comp_wl->wl.disp);
switch (exsurf->role)
break;
case E_XDG_SURFACE_ROLE_POPUP:
_e_xdg_popup_configure_send((E_Xdg_Popup *)exsurf);
+ wait_ack = EINA_TRUE;
break;
case E_XDG_SURFACE_ROLE_TOPLEVEL:
_e_xdg_toplevel_configure_send((E_Xdg_Toplevel *)exsurf, configure);
+ wait_ack = EINA_TRUE;
break;
}
LOG("Send configure: %s serial %d", exsurf->ec,
_e_xdg_surface_util_role_string_get(exsurf), configure->serial);
+ if (wait_ack)
+ exsurf->configure_list = eina_list_append(exsurf->configure_list, configure);
+ else
+ E_FREE(configure);
+
end:
exsurf->configure_idle = NULL;
return ECORE_CALLBACK_DONE;