less overhead... maybe.

SVN revision: 46076
This commit is contained in:
Carsten Haitzler 2010-02-11 13:33:20 +00:00
parent 2c22b1f6c1
commit 11ddc952af
1 changed files with 30 additions and 52 deletions

View 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,22 +923,8 @@ _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->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));
@ -963,15 +947,12 @@ _e_mod_comp_win_show(E_Comp_Win *cw)
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->redirected)
{
ecore_x_composite_redirect_window(cw->win, ECORE_X_COMPOSITE_UPDATE_MANUAL);
@ -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));