From 952dbf4f2d68e9ac82e795d59dfb5ad900913707 Mon Sep 17 00:00:00 2001 From: raster Date: Wed, 28 Jul 2010 08:11:30 +0000 Subject: [PATCH] try this one git-svn-id: http://svn.enlightenment.org/svn/e/trunk/evas@50589 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- src/modules/engines/gl_x11/evas_engine.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/modules/engines/gl_x11/evas_engine.c b/src/modules/engines/gl_x11/evas_engine.c index 9de25ae..b568035 100644 --- a/src/modules/engines/gl_x11/evas_engine.c +++ b/src/modules/engines/gl_x11/evas_engine.c @@ -325,8 +325,15 @@ eng_setup(Evas *e, void *in) (info->info.destination_alpha != re->win->alpha) || (info->info.rotation != re->win->rot)) { - Evas_GL_X11_Window *oldwin = re->win; + int inc = 0; + if (re->win) + { + re->win->gl_context->shared->references++; + eng_window_free(re->win); + inc = 1; + gl_wins--; + } re->win = eng_window_new(info->info.display, info->info.drawable, info->info.screen, @@ -339,11 +346,8 @@ eng_setup(Evas *e, void *in) info->info.destination_alpha, info->info.rotation); if (re->win) gl_wins++; - if (oldwin) - { - eng_window_free(oldwin); - gl_wins--; - } + if ((re->win) && (inc)) + re->win->gl_context->shared->references--; } else if ((re->win->w != e->output.w) || (re->win->h != e->output.h)) -- 2.7.4