less overhead... maybe.
authorCarsten Haitzler <raster@rasterman.com>
Thu, 11 Feb 2010 13:33:20 +0000 (13:33 +0000)
committerCarsten Haitzler <raster@rasterman.com>
Thu, 11 Feb 2010 13:33:20 +0000 (13:33 +0000)
SVN revision: 46076

src/modules/comp/e_mod_comp.c

index 299310b0085a203d7bef1b627ce13f88f7c1d1f8..118ca94f2795c832ad939609180b2ac818882ca6 100644 (file)
@@ -869,11 +869,6 @@ _e_mod_comp_win_del(E_Comp_Win *cw)
         else if (cw->menu) e_object_delfn_del(E_OBJECT(cw->menu), cw->dfn);
         cw->dfn = NULL;
      }
-   if (cw->native)
-     {
-        evas_object_image_native_surface_set(cw->obj, NULL);
-        cw->native = 0;
-     }
    if (cw->pixmap)
      {
         ecore_x_pixmap_free(cw->pixmap);
@@ -881,6 +876,9 @@ _e_mod_comp_win_del(E_Comp_Win *cw)
         cw->pw = 0;
         cw->ph = 0;
      }
+// segv?   
+//   evas_object_image_native_surface_set(cw->obj, NULL);
+//   cw->native = 0;
    if (cw->update)
      {
         cw->update = 0;
@@ -925,53 +923,36 @@ _e_mod_comp_win_show(E_Comp_Win *cw)
    cw->visible = 1;
    DBG("  [0x%x] sho ++++++++++\n", cw->win);
    if ((cw->input_only) || (cw->invalid)) return;
-//   if (cw->redirected)
+   if (cw->pixmap) ecore_x_pixmap_free(cw->pixmap);
+   evas_object_image_size_set(cw->obj, cw->pw, cw->ph);
+   cw->pixmap = ecore_x_composite_name_window_pixmap_get(cw->win);
+   if (cw->pixmap)
+     ecore_x_pixmap_geometry_get(cw->pixmap, NULL, NULL, &(cw->pw), &(cw->ph));
+   else
      {
-/*        
-        if (cw->native) evas_object_image_native_surface_set(cw->obj, NULL);
-        if (cw->pixmap) ecore_x_pixmap_free(cw->pixmap);
-        evas_object_image_size_set(cw->obj, 1, 1);
-        cw->pixmap = 0;
         cw->pw = 0;
         cw->ph = 0;
-        cw->native = 0;
-        ecore_x_composite_unredirect_window(cw->win, ECORE_X_COMPOSITE_UPDATE_MANUAL);
-        cw->redirected = 0;
- */
-        if (cw->pixmap) ecore_x_pixmap_free(cw->pixmap);
-        evas_object_image_size_set(cw->obj, cw->pw, cw->ph);
-//        ecore_x_window_resize(cw->win, cw->w + 10, cw->h + 10);
-        cw->pixmap = ecore_x_composite_name_window_pixmap_get(cw->win);
-        if (cw->pixmap)
-          ecore_x_pixmap_geometry_get(cw->pixmap, NULL, NULL, &(cw->pw), &(cw->ph));
-        else
-          {
-             cw->pw = 0;
-             cw->ph = 0;
-          }
-        if ((cw->pw <= 0) || (cw->ph <= 0))
-          {
-             ecore_x_pixmap_free(cw->pixmap);
-             cw->pixmap = 0;
-          }
-        if ((cw->c->gl) && (_comp_mod->conf->texture_from_pixmap) &&
-            (!cw->shaped) && (!cw->shape_changed) && (cw->pixmap))
-          {
-             Evas_Native_Surface ns;
-             
-             ns.data.x11.visual = cw->vis;
-             ns.data.x11.pixmap = cw->pixmap;
-             evas_object_image_native_surface_set(cw->obj, &ns);
-             DBG("NATIVE SHOW1 [0x%x] %x %ix%i\n", cw->win, cw->pixmap, cw->pw, cw->ph);
-             cw->native = 1;
-          }
-//        ecore_x_window_resize(cw->win, cw->w, cw->h);
-        if (cw->pixmap) ecore_x_pixmap_free(cw->pixmap);
-        cw->pixmap = 0; 
-        cw->pw = 0;
-        cw->ph = 0;
-        cw->native = 0;
      }
+   if ((cw->pw <= 0) || (cw->ph <= 0))
+     {
+        ecore_x_pixmap_free(cw->pixmap);
+        cw->pixmap = 0;
+     }
+   if ((cw->c->gl) && (_comp_mod->conf->texture_from_pixmap) &&
+       (!cw->shaped) && (!cw->shape_changed) && (cw->pixmap))
+     {
+        Evas_Native_Surface ns;
+        
+        ns.data.x11.visual = cw->vis;
+        ns.data.x11.pixmap = cw->pixmap;
+        evas_object_image_native_surface_set(cw->obj, &ns);
+        DBG("NATIVE SHOW1 [0x%x] %x %ix%i\n", cw->win, cw->pixmap, cw->pw, cw->ph);
+     }
+   if (cw->pixmap) ecore_x_pixmap_free(cw->pixmap);
+   cw->pixmap = 0; 
+   cw->pw = 0;
+   cw->ph = 0;
+   cw->native = 0;
    if (!cw->redirected)
      {
         ecore_x_composite_redirect_window(cw->win, ECORE_X_COMPOSITE_UPDATE_MANUAL);
@@ -1016,7 +997,7 @@ _e_mod_comp_win_show(E_Comp_Win *cw)
                                                     "base/theme/borders",
                                                     "e/shadow/box"))
                          ok = 0;
-                    }
+                   }
                   if (!ok)
                     {
                        snprintf(buf, sizeof(buf), "%s/shadow.edj", 
@@ -1073,15 +1054,12 @@ _e_mod_comp_win_hide(E_Comp_Win *cw)
         // getting pixmap againand well - getting texture too again. why?
         if (cw->redirected)
           {
-             if (cw->native) evas_object_image_native_surface_set(cw->obj, NULL);
              if (cw->pixmap) ecore_x_pixmap_free(cw->pixmap);
              evas_object_image_size_set(cw->obj, 1, 1);
              cw->pixmap = 0;
              cw->pw = 0;
              cw->ph = 0;
              cw->native = 0;
-             ecore_x_composite_unredirect_window(cw->win, ECORE_X_COMPOSITE_UPDATE_MANUAL);
-             ecore_x_composite_redirect_window(cw->win, ECORE_X_COMPOSITE_UPDATE_MANUAL);
              cw->pixmap = ecore_x_composite_name_window_pixmap_get(cw->win);
              if (cw->pixmap)
                ecore_x_pixmap_geometry_get(cw->pixmap, NULL, NULL, &(cw->pw), &(cw->ph));