discomfitor pushed a commit to branch master.

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

commit f70649a13d2d45c43fda08edb47da68778ec9d14
Author: Mike Blumenkrantz <zm...@osg.samsung.com>
Date:   Wed Mar 30 15:42:21 2016 -0400

    wayland: ignore resize from no-op surface configure events, send events 
always
    
    this fixes the case where a configure event with the current window geometry
    would cause (inaccurate) resizes
    
    @fix
---
 src/lib/ecore_wl2/ecore_wl2_window.c                               | 5 +++--
 src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c | 3 +--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/lib/ecore_wl2/ecore_wl2_window.c 
b/src/lib/ecore_wl2/ecore_wl2_window.c
index dd92185..28359c2 100644
--- a/src/lib/ecore_wl2/ecore_wl2_window.c
+++ b/src/lib/ecore_wl2/ecore_wl2_window.c
@@ -113,9 +113,10 @@ _xdg_surface_cb_configure(void *data, struct xdg_surface 
*xdg_surface EINA_UNUSE
      }
 
    win->configure_serial = serial;
+   if ((win->geometry.w == w) && (win->geometry.h == h))
+     w = h = 0;
 
-   if ((w > 0) && (h > 0))
-     _ecore_wl2_window_configure_send(win, w, h, 0);
+   _ecore_wl2_window_configure_send(win, w, h, 0);
 }
 
 static void
diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c 
b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
index 40db840..4a6659b 100644
--- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
+++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
@@ -187,8 +187,6 @@ _ecore_evas_wl_common_cb_window_configure(void *data 
EINA_UNUSED, int type EINA_
 
    nw = ev->w;
    nh = ev->h;
-   if (nw < 1) nw = 1;
-   if (nh < 1) nh = 1;
 
    if (prev_full != ee->prop.fullscreen)
      _ecore_evas_wl_common_border_update(ee);
@@ -197,6 +195,7 @@ _ecore_evas_wl_common_cb_window_configure(void *data 
EINA_UNUSED, int type EINA_
        (prev_full != ee->prop.fullscreen))
      _ecore_evas_wl_common_state_update(ee);
 
+   if ((!nw) && (!nh)) return ECORE_CALLBACK_RENEW;
    /* NB: We receive window configure sizes based on xdg surface
     * window geometry, so we need to subtract framespace here */
    evas_output_framespace_get(ee->evas, NULL, &fy, NULL, NULL);

-- 


Reply via email to