forked from enlightenment/efl
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
This commit is contained in:
parent
ac64e26b2d
commit
f70649a13d
|
@ -113,9 +113,10 @@ _xdg_surface_cb_configure(void *data, struct xdg_surface *xdg_surface EINA_UNUSE
|
||||||
}
|
}
|
||||||
|
|
||||||
win->configure_serial = serial;
|
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
|
static void
|
||||||
|
|
|
@ -187,8 +187,6 @@ _ecore_evas_wl_common_cb_window_configure(void *data EINA_UNUSED, int type EINA_
|
||||||
|
|
||||||
nw = ev->w;
|
nw = ev->w;
|
||||||
nh = ev->h;
|
nh = ev->h;
|
||||||
if (nw < 1) nw = 1;
|
|
||||||
if (nh < 1) nh = 1;
|
|
||||||
|
|
||||||
if (prev_full != ee->prop.fullscreen)
|
if (prev_full != ee->prop.fullscreen)
|
||||||
_ecore_evas_wl_common_border_update(ee);
|
_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))
|
(prev_full != ee->prop.fullscreen))
|
||||||
_ecore_evas_wl_common_state_update(ee);
|
_ecore_evas_wl_common_state_update(ee);
|
||||||
|
|
||||||
|
if ((!nw) && (!nh)) return ECORE_CALLBACK_RENEW;
|
||||||
/* NB: We receive window configure sizes based on xdg surface
|
/* NB: We receive window configure sizes based on xdg surface
|
||||||
* window geometry, so we need to subtract framespace here */
|
* window geometry, so we need to subtract framespace here */
|
||||||
evas_output_framespace_get(ee->evas, NULL, &fy, NULL, NULL);
|
evas_output_framespace_get(ee->evas, NULL, &fy, NULL, NULL);
|
||||||
|
|
Loading…
Reference in New Issue