add new win before deleting old.
authorraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Wed, 28 Jul 2010 06:00:02 +0000 (06:00 +0000)
committerraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Wed, 28 Jul 2010 06:00:02 +0000 (06:00 +0000)
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@50584 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/modules/engines/gl_x11/evas_engine.c

index e9d2484..9de25ae 100644 (file)
@@ -325,11 +325,8 @@ eng_setup(Evas *e, void *in)
             (info->info.destination_alpha != re->win->alpha) ||
             (info->info.rotation != re->win->rot))
           {
-             if (re->win)
-               {
-                  eng_window_free(re->win);
-                  gl_wins--;
-               }
+             Evas_GL_X11_Window *oldwin = re->win;
+             
              re->win = eng_window_new(info->info.display,
                                       info->info.drawable,
                                       info->info.screen,
@@ -342,6 +339,11 @@ 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--;
+               }
           }
         else if ((re->win->w != e->output.w) ||
                  (re->win->h != e->output.h))