From 1a0f8b1c51b9f1fdcd9c6ecc94f03bc701bdf4a1 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Wed, 28 Jul 2010 08:11:30 +0000 Subject: [PATCH] try this one SVN revision: 50589 --- .../src/modules/engines/gl_x11/evas_engine.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/legacy/evas/src/modules/engines/gl_x11/evas_engine.c b/legacy/evas/src/modules/engines/gl_x11/evas_engine.c index 9de25aee1a..b5680359e5 100644 --- a/legacy/evas/src/modules/engines/gl_x11/evas_engine.c +++ b/legacy/evas/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))