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

Reply via email to