From f70649a13d2d45c43fda08edb47da68778ec9d14 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Wed, 30 Mar 2016 15:42:21 -0400 Subject: [PATCH] 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 +++-- .../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 dd921852c6..28359c20f3 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 40db840ec6..4a6659b70d 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);