diff --git a/src/modules/evas/engines/gl_common/evas_gl_core.c b/src/modules/evas/engines/gl_common/evas_gl_core.c index ba3496a99e..f851d560cc 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_core.c +++ b/src/modules/evas/engines/gl_common/evas_gl_core.c @@ -2081,6 +2081,8 @@ int evgl_surface_destroy(void *eng_data, EVGL_Surface *sfc) { EVGL_Resource *rsc; + Eina_List *l; + EVGL_Context *ctx; Eina_Bool dbg; // Check input parameter @@ -2183,6 +2185,12 @@ evgl_surface_destroy(void *eng_data, EVGL_Surface *sfc) evgl_engine->surfaces = eina_list_remove(evgl_engine->surfaces, sfc); LKU(evgl_engine->resource_lock); + EINA_LIST_FOREACH(evgl_engine->contexts, l, ctx) + { + if (ctx->current_sfc == sfc) + ctx->current_sfc = NULL; + } + free(sfc); _surface_context_list_print();