From 5e8b86bcba40af5ed822477f522346e293f437c3 Mon Sep 17 00:00:00 2001 From: Alex Wu Date: Tue, 19 Mar 2013 16:36:16 +0800 Subject: [PATCH] Port "ecore-wayland: Improve opaque setting logic." patch from upstream Change-Id: I763ca2763ea76a536de1b04c2c77ba42a334ebbc Signed-off-by: Alex Wu --- src/lib/ecore_wayland/ecore_wl_window.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/lib/ecore_wayland/ecore_wl_window.c b/src/lib/ecore_wayland/ecore_wl_window.c index c908e49..fd1ccc1 100644 --- a/src/lib/ecore_wayland/ecore_wl_window.c +++ b/src/lib/ecore_wayland/ecore_wl_window.c @@ -344,6 +344,9 @@ ecore_wl_window_buffer_attach(Ecore_Wl_Window *win, struct wl_buffer *buffer, in return; } + if (!win->surface) + return; + if (win->region.input) { wl_surface_set_input_region(win->surface, win->region.input); @@ -552,6 +555,15 @@ ecore_wl_window_update_size(Ecore_Wl_Window *win, int w, int h) if (!win) return; win->allocation.w = w; win->allocation.h = h; + + if ((!win->transparent) || (!win->alpha)) + { + if (win->region.opaque) wl_region_destroy(win->region.opaque); + win->region.opaque = + wl_compositor_create_region(_ecore_wl_disp->wl.compositor); + wl_region_add(win->region.opaque, win->allocation.x, win->allocation.y, + win->allocation.w, win->allocation.h); + } } EAPI void -- 2.7.4