devilhorns pushed a commit to branch master.

commit ec76c76f74f2ffbc7366ec16fd3651dbf7f48718
Author: Chris Michael <[email protected]>
Date:   Tue Sep 10 14:34:16 2013 +0100

    Restore old functionality of ecore_evas_alpha_set.
    
    NB: We will still create all new canvases as alpha by setting it in evas,
    however this allows the 'state' of ecore_evas_alpha_set/get to retain
    it's original functionality and thus accurately report what a client
    application May have set alpha value too.
    
    NB: Fixes Phab Ticket T350
    
    Signed-off-by: Chris Michael <[email protected]>
---
 .../ecore_evas/engines/wayland/ecore_evas_wayland_egl.c | 17 ++++++++---------
 .../ecore_evas/engines/wayland/ecore_evas_wayland_shm.c | 17 ++++++++---------
 2 files changed, 16 insertions(+), 18 deletions(-)

diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c 
b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c
index a04a2b8..6337fab 100644
--- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c
+++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c
@@ -159,7 +159,7 @@ ecore_evas_wayland_egl_new_internal(const char *disp_name, 
unsigned int parent,
    ee->prop.request_pos = 0;
    ee->prop.sticky = 0;
    ee->prop.draw_frame = frame;
-   ee->alpha = EINA_TRUE;
+   ee->alpha = EINA_FALSE;
 
    /* NB: Disabled for right now as it causes textgrid (terminology) 
     * to not draw text anymore */
@@ -184,7 +184,6 @@ ecore_evas_wayland_egl_new_internal(const char *disp_name, 
unsigned int parent,
    wdata->win = 
      ecore_wl_window_new(p, x, y, w + fw, h + fh, 
                          ECORE_WL_WINDOW_BUFFER_TYPE_EGL_WINDOW);
-   ecore_wl_window_alpha_set(wdata->win, ee->alpha);
    ee->prop.window = wdata->win->id;
 
    ee->evas = evas_new();
@@ -206,7 +205,7 @@ ecore_evas_wayland_egl_new_internal(const char *disp_name, 
unsigned int parent,
    if ((einfo = (Evas_Engine_Info_Wayland_Egl 
*)evas_engine_info_get(ee->evas)))
      {
         einfo->info.display = ecore_wl_display_get();
-        einfo->info.destination_alpha = ee->alpha;
+        einfo->info.destination_alpha = EINA_TRUE;
         einfo->info.rotation = ee->rotation;
         einfo->info.depth = 32;
         einfo->info.surface = ecore_wl_window_surface_create(wdata->win);
@@ -462,7 +461,7 @@ _ecore_evas_wayland_egl_alpha_do(Ecore_Evas *ee, int alpha)
 
    if (!ee) return;
    if ((ee->alpha == alpha)) return;
-   ee->alpha = EINA_TRUE;
+   ee->alpha = alpha;
    wdata = ee->engine.data;
 
    if (wdata->win) ecore_wl_window_alpha_set(wdata->win, ee->alpha);
@@ -471,7 +470,7 @@ _ecore_evas_wayland_egl_alpha_do(Ecore_Evas *ee, int alpha)
 
    if ((einfo = (Evas_Engine_Info_Wayland_Egl 
*)evas_engine_info_get(ee->evas)))
      {
-        einfo->info.destination_alpha = ee->alpha;
+        einfo->info.destination_alpha = EINA_TRUE;
         if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo))
           ERR("evas_engine_info_set() for engine '%s' failed.", ee->driver);
         evas_damage_rectangle_add(ee->evas, 0, 0, ee->w + fw, ee->h + fh);
@@ -483,7 +482,7 @@ _ecore_evas_wl_alpha_set(Ecore_Evas *ee, int alpha)
 {
    if (ee->in_async_render)
      {
-        ee->delayed.alpha = EINA_TRUE;
+        ee->delayed.alpha = alpha;
         ee->delayed.alpha_changed = EINA_TRUE;
         return;
      }
@@ -502,7 +501,7 @@ _ecore_evas_wayland_egl_transparent_do(Ecore_Evas *ee, int 
transparent)
 
    if (!ee) return;
    if ((ee->transparent == transparent)) return;
-   ee->transparent = EINA_TRUE;
+   ee->transparent = transparent;
 
    wdata = ee->engine.data;
    if (wdata->win)
@@ -512,7 +511,7 @@ _ecore_evas_wayland_egl_transparent_do(Ecore_Evas *ee, int 
transparent)
 
    if ((einfo = (Evas_Engine_Info_Wayland_Egl 
*)evas_engine_info_get(ee->evas)))
      {
-        einfo->info.destination_alpha = ee->transparent;
+        einfo->info.destination_alpha = EINA_TRUE;
         if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo))
           ERR("evas_engine_info_set() for engine '%s' failed.", ee->driver);
         evas_damage_rectangle_add(ee->evas, 0, 0, ee->w + fw, ee->h + fh);
@@ -524,7 +523,7 @@ _ecore_evas_wl_transparent_set(Ecore_Evas *ee, int 
transparent)
 {
    if (ee->in_async_render)
      {
-        ee->delayed.transparent = EINA_TRUE;
+        ee->delayed.transparent = transparent;
         ee->delayed.transparent_changed = EINA_TRUE;
         return;
      }
diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c 
b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c
index 8c9c047..32bcc8a 100644
--- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c
+++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c
@@ -157,7 +157,7 @@ ecore_evas_wayland_shm_new_internal(const char *disp_name, 
unsigned int parent,
    ee->prop.request_pos = 0;
    ee->prop.sticky = 0;
    ee->prop.draw_frame = frame;
-   ee->alpha = EINA_TRUE;
+   ee->alpha = EINA_FALSE;
 
    if (getenv("ECORE_EVAS_FORCE_SYNC_RENDER"))
      ee->can_async_render = 0;
@@ -181,7 +181,6 @@ ecore_evas_wayland_shm_new_internal(const char *disp_name, 
unsigned int parent,
    wdata->win = 
      ecore_wl_window_new(p, x, y, w + fw, h + fh, 
                          ECORE_WL_WINDOW_BUFFER_TYPE_SHM);
-   ecore_wl_window_alpha_set(wdata->win, ee->alpha);
    ee->prop.window = wdata->win->id;
 
    ee->evas = evas_new();
@@ -201,7 +200,7 @@ ecore_evas_wayland_shm_new_internal(const char *disp_name, 
unsigned int parent,
    if ((einfo = (Evas_Engine_Info_Wayland_Shm 
*)evas_engine_info_get(ee->evas)))
      {
         einfo->info.wl_shm = ecore_wl_shm_get();
-        einfo->info.destination_alpha = ee->alpha;
+        einfo->info.destination_alpha = EINA_TRUE;
         einfo->info.rotation = ee->rotation;
         einfo->info.wl_surface = ecore_wl_window_surface_create(wdata->win);
         if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo))
@@ -461,7 +460,7 @@ _ecore_evas_wayland_shm_alpha_do(Ecore_Evas *ee, int alpha)
 
    if (!ee) return;
    if ((ee->alpha == alpha)) return;
-   ee->alpha = EINA_TRUE;
+   ee->alpha = alpha;
    wdata = ee->engine.data;
 
    if (wdata->win) ecore_wl_window_alpha_set(wdata->win, ee->alpha);
@@ -470,7 +469,7 @@ _ecore_evas_wayland_shm_alpha_do(Ecore_Evas *ee, int alpha)
 
    if ((einfo = (Evas_Engine_Info_Wayland_Shm 
*)evas_engine_info_get(ee->evas)))
      {
-        einfo->info.destination_alpha = ee->alpha;
+        einfo->info.destination_alpha = EINA_TRUE;//ee->alpha;
         if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo))
           ERR("evas_engine_info_set() for engine '%s' failed.", ee->driver);
         evas_damage_rectangle_add(ee->evas, 0, 0, ee->w + fw, ee->h + fh);
@@ -482,7 +481,7 @@ _ecore_evas_wl_alpha_set(Ecore_Evas *ee, int alpha)
 {
    if (ee->in_async_render)
      {
-        ee->delayed.alpha = EINA_TRUE;
+        ee->delayed.alpha = alpha;
         ee->delayed.alpha_changed = EINA_TRUE;
         return;
      }
@@ -500,7 +499,7 @@ _ecore_evas_wayland_shm_transparent_do(Ecore_Evas *ee, int 
transparent)
 
    if (!ee) return;
    if ((ee->transparent == transparent)) return;
-   ee->transparent = EINA_TRUE;
+   ee->transparent = transparent;
 
    wdata = ee->engine.data;
    if (wdata->win)
@@ -510,7 +509,7 @@ _ecore_evas_wayland_shm_transparent_do(Ecore_Evas *ee, int 
transparent)
 
    if ((einfo = (Evas_Engine_Info_Wayland_Shm 
*)evas_engine_info_get(ee->evas)))
      {
-        einfo->info.destination_alpha = ee->transparent;
+        einfo->info.destination_alpha = EINA_TRUE;//ee->transparent;
         if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo))
           ERR("evas_engine_info_set() for engine '%s' failed.", ee->driver);
         evas_damage_rectangle_add(ee->evas, 0, 0, ee->w + fw, ee->h + fh);
@@ -522,7 +521,7 @@ _ecore_evas_wl_transparent_set(Ecore_Evas *ee, int 
transparent)
 {
    if (ee->in_async_render)
      {
-        ee->delayed.transparent = EINA_TRUE;
+        ee->delayed.transparent = transparent;
         ee->delayed.transparent_changed = EINA_TRUE;
         return;
      }

-- 

------------------------------------------------------------------------------
How ServiceNow helps IT people transform IT departments:
1. Consolidate legacy IT systems to a single system of record for IT
2. Standardize and globalize service processes across IT
3. Implement zero-touch automation to replace manual, redundant tasks
http://pubads.g.doubleclick.net/gampad/clk?id=51271111&iu=/4140/ostg.clktrk

Reply via email to