forked from enlightenment/efl
ecore-evas wayland: enforce frame/state change triggering before move/resize
if a state change occurs on the ee, related callbacks must be run prior to performing any resizes in order to ensure that the correct csd sizes are calculated @fix ref T2841
This commit is contained in:
parent
9a542d0dcc
commit
3b139fe0f1
|
@ -191,6 +191,13 @@ _ecore_evas_wl_common_cb_window_configure(void *data EINA_UNUSED, int type EINA_
|
|||
if (nw < 1) nw = 1;
|
||||
if (nh < 1) nh = 1;
|
||||
|
||||
if (prev_full != ee->prop.fullscreen)
|
||||
_ecore_evas_wl_common_border_update(ee);
|
||||
|
||||
if ((prev_max != ee->prop.maximized) ||
|
||||
(prev_full != ee->prop.fullscreen))
|
||||
_ecore_evas_wl_common_state_update(ee);
|
||||
|
||||
evas_output_framespace_get(ee->evas, NULL, NULL, &fw, &fh);
|
||||
if (ECORE_EVAS_PORTRAIT(ee))
|
||||
{
|
||||
|
@ -203,30 +210,12 @@ _ecore_evas_wl_common_cb_window_configure(void *data EINA_UNUSED, int type EINA_
|
|||
nh -= fw;
|
||||
}
|
||||
|
||||
if (prev_full != ee->prop.fullscreen)
|
||||
_ecore_evas_wl_common_border_update(ee);
|
||||
|
||||
if (ee->prop.fullscreen)
|
||||
{
|
||||
_ecore_evas_wl_common_move(ee, ev->x, ev->y);
|
||||
_ecore_evas_wl_common_resize(ee, nw, nh);
|
||||
|
||||
if (prev_full != ee->prop.fullscreen)
|
||||
_ecore_evas_wl_common_state_update(ee);
|
||||
|
||||
return ECORE_CALLBACK_PASS_ON;
|
||||
}
|
||||
|
||||
if ((ee->x != ev->x) || (ee->y != ev->y))
|
||||
if (ee->prop.fullscreen || (ee->x != ev->x) || (ee->y != ev->y))
|
||||
_ecore_evas_wl_common_move(ee, ev->x, ev->y);
|
||||
|
||||
if ((ee->req.w != nw) || (ee->req.h != nh))
|
||||
if (ee->prop.fullscreen || (ee->req.w != nw) || (ee->req.h != nh))
|
||||
_ecore_evas_wl_common_resize(ee, nw, nh);
|
||||
|
||||
if ((prev_max != ee->prop.maximized) ||
|
||||
(prev_full != ee->prop.fullscreen))
|
||||
_ecore_evas_wl_common_state_update(ee);
|
||||
|
||||
return ECORE_CALLBACK_PASS_ON;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue