discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=ed743dddf05d856a4c69e3ec570bec3bbd838a3e

commit ed743dddf05d856a4c69e3ec570bec3bbd838a3e
Author: Mike Blumenkrantz <[email protected]>
Date:   Fri Oct 7 11:00:08 2016 -0400

    ecore-wl2: add internal window flag for determining if opaque/input have 
been set
---
 src/lib/ecore_wl2/ecore_wl2_private.h |  3 +++
 src/lib/ecore_wl2/ecore_wl2_window.c  | 12 ++++++++----
 2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/src/lib/ecore_wl2/ecore_wl2_private.h 
b/src/lib/ecore_wl2/ecore_wl2_private.h
index 23d1d58..f7055cf 100644
--- a/src/lib/ecore_wl2/ecore_wl2_private.h
+++ b/src/lib/ecore_wl2/ecore_wl2_private.h
@@ -168,6 +168,9 @@ struct _Ecore_Wl2_Window
    Eina_Bool resizing : 1;
    Eina_Bool alpha : 1;
    Eina_Bool transparent : 1;
+
+   Eina_Bool input_set : 1;
+   Eina_Bool opaque_set : 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 5122cb8..cebbba0 100644
--- a/src/lib/ecore_wl2/ecore_wl2_window.c
+++ b/src/lib/ecore_wl2/ecore_wl2_window.c
@@ -422,10 +422,12 @@ ecore_wl2_window_show(Ecore_Wl2_Window *window)
           }
      }
 
-   ecore_wl2_window_input_region_set(window, window->input_rect.x, 
window->input_rect.x, 
-                                             window->input_rect.w, 
window->input_rect.h);
-   ecore_wl2_window_opaque_region_set(window, window->opaque.x, 
window->opaque.x, 
-                                             window->opaque.w, 
window->opaque.h);
+   if (window->input_set)
+     ecore_wl2_window_input_region_set(window, window->input_rect.x, 
window->input_rect.x, 
+                                               window->input_rect.w, 
window->input_rect.h);
+   if (window->opaque_set)
+     ecore_wl2_window_opaque_region_set(window, window->opaque.x, 
window->opaque.x, 
+                                               window->opaque.w, 
window->opaque.h);
 
    if ((window->type != ECORE_WL2_WINDOW_TYPE_DND) &&
        (window->type != ECORE_WL2_WINDOW_TYPE_NONE))
@@ -634,6 +636,7 @@ ecore_wl2_window_opaque_region_set(Ecore_Wl2_Window 
*window, int x, int y, int w
    window->opaque.y = y;
    window->opaque.w = w;
    window->opaque.h = h;
+   window->opaque_set = 1;
 
    if ((window->transparent) || (window->alpha)) return;
    if (!window->surface) return; //surface not created yet
@@ -676,6 +679,7 @@ ecore_wl2_window_input_region_set(Ecore_Wl2_Window *window, 
int x, int y, int w,
    window->input_rect.y = y;
    window->input_rect.w = w;
    window->input_rect.h = h;
+   window->input_set = 1;
 
    if (window->type == ECORE_WL2_WINDOW_TYPE_DND) return;
    if (!window->surface) return; //surface not created yet

-- 


Reply via email to