Enlightenment CVS committal Author : raster Project : e17 Module : libs/ecore
Dir : e17/libs/ecore/src/lib/ecore_evas Modified Files: ecore_evas_x.c Log Message: handle dst alpha better =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_evas/ecore_evas_x.c,v retrieving revision 1.74 retrieving revision 1.75 diff -u -3 -r1.74 -r1.75 --- ecore_evas_x.c 8 Mar 2006 08:02:55 -0000 1.74 +++ ecore_evas_x.c 8 Mar 2006 15:35:01 -0000 1.75 @@ -1998,6 +1998,7 @@ #ifdef BUILD_ECORE_X Evas_Engine_Info_Software_X11 *einfo; Ecore_Evas *ee; + int argb = 0; int rmethod; static int redraw_debug = -1; @@ -2036,7 +2037,18 @@ evas_output_viewport_set(ee->evas, 0, 0, w, h); ee->engine.x.win_root = parent; - ee->engine.x.win = ecore_x_window_new(parent, x, y, w, h); + if (parent != 0) + { + if (ecore_x_window_argb_get(parent)) + { + ee->engine.x.win = ecore_x_window_argb_new(parent, x, y, w, h); + argb = 1; + } + else + ee->engine.x.win = ecore_x_window_new(parent, x, y, w, h); + } + else + ee->engine.x.win = ecore_x_window_new(parent, x, y, w, h); if (getenv("DESKTOP_STARTUP_ID")) { ecore_x_netwm_startup_id_set(ee->engine.x.win, @@ -2088,10 +2100,27 @@ redraw_debug = 0; } einfo->info.display = ecore_x_display_get(); - einfo->info.visual = DefaultVisual(ecore_x_display_get(), screen); - einfo->info.colormap = DefaultColormap(ecore_x_display_get(), screen); einfo->info.drawable = ee->engine.x.win; - einfo->info.depth = DefaultDepth(ecore_x_display_get(), screen); + if (argb) + { + XWindowAttributes at; + + if (XGetWindowAttributes(ecore_x_display_get(), ee->engine.x.win, + &at)) + { + einfo->info.visual = at.visual; + einfo->info.colormap = at.colormap; + einfo->info.depth = at.depth; + einfo->info.destination_alpha = 1; + } + } + else + { + einfo->info.visual = DefaultVisual(ecore_x_display_get(), screen); + einfo->info.colormap = DefaultColormap(ecore_x_display_get(), screen); + einfo->info.depth = DefaultDepth(ecore_x_display_get(), screen); + einfo->info.destination_alpha = 0; + } einfo->info.rotation = 0; einfo->info.debug = redraw_debug; evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo); ------------------------------------------------------- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs