devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=0d0b7f997964bf3d1ef0e4a16d952aa960a89448
commit 0d0b7f997964bf3d1ef0e4a16d952aa960a89448 Author: Chris Michael <cp.mich...@samsung.com> Date: Mon Sep 28 09:36:34 2015 -0400 ecore-wl2: Add API function to set if a window is transparent Signed-off-by: Chris Michael <cp.mich...@samsung.com> --- src/lib/ecore_wl2/ecore_wl2_private.h | 1 + src/lib/ecore_wl2/ecore_wl2_window.c | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/src/lib/ecore_wl2/ecore_wl2_private.h b/src/lib/ecore_wl2/ecore_wl2_private.h index 800c1ad..9ba9600 100644 --- a/src/lib/ecore_wl2/ecore_wl2_private.h +++ b/src/lib/ecore_wl2/ecore_wl2_private.h @@ -99,6 +99,7 @@ struct _Ecore_Wl2_Window Eina_Bool focused : 1; Eina_Bool resizing : 1; Eina_Bool alpha : 1; + Eina_Bool transparent : 1; }; struct _Ecore_Wl2_Output diff --git a/src/lib/ecore_wl2/ecore_wl2_window.c b/src/lib/ecore_wl2/ecore_wl2_window.c index ed32719..bcd10d7 100644 --- a/src/lib/ecore_wl2/ecore_wl2_window.c +++ b/src/lib/ecore_wl2/ecore_wl2_window.c @@ -268,6 +268,11 @@ ecore_wl2_window_new(Ecore_Wl2_Display *display, Ecore_Wl2_Window *parent, int x win->geometry.w = w; win->geometry.h = h; + win->opaque.x = x; + win->opaque.y = y; + win->opaque.w = w; + win->opaque.h = h; + win->type = ECORE_WL2_WINDOW_TYPE_TOPLEVEL; display->windows = @@ -520,6 +525,23 @@ ecore_wl2_window_alpha_set(Ecore_Wl2_Window *window, Eina_Bool alpha) } EAPI void +ecore_wl2_window_transparent_set(Ecore_Wl2_Window *window, Eina_Bool transparent) +{ + EINA_SAFETY_ON_NULL_RETURN(window); + + if (window->transparent == transparent) return; + + window->transparent = transparent; + + if (!window->transparent) + ecore_wl2_window_opaque_region_set(window, window->opaque.x, + window->opaque.y, window->opaque.w, + window->opaque.h); + else + ecore_wl2_window_opaque_region_set(window, 0, 0, 0, 0); +} + +EAPI void ecore_wl2_window_opaque_region_set(Ecore_Wl2_Window *window, int x, int y, int w, int h) { struct wl_region *region; --