forked from enlightenment/efl
Revert "ee_wayland: Remove pointless ack_configure"
Summary:
This reverts commit a61f254f19
.
and a follow up commit that removed some warnings
Apparently this is instrumental in enlightenment's window maximize
animation processing.
The removed bits would force an ack configure when an inbound
configure didn't result in a change that would cause a re-render.
Since this calculation needs knowledge of state ecore_wl2 doesn't
track, it does need to happen here.
ref T7243
Reviewers: zmike
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers, zmike
Tags: #efl
Maniphest Tasks: T7243
Differential Revision: https://phab.enlightenment.org/D6783
This commit is contained in:
parent
b4112b9735
commit
c45348770c
|
@ -566,9 +566,9 @@ _ecore_evas_wl_common_cb_window_configure(void *data EINA_UNUSED, int type EINA_
|
||||||
Ecore_Evas *ee;
|
Ecore_Evas *ee;
|
||||||
Ecore_Evas_Engine_Wl_Data *wdata;
|
Ecore_Evas_Engine_Wl_Data *wdata;
|
||||||
Ecore_Wl2_Event_Window_Configure *ev;
|
Ecore_Wl2_Event_Window_Configure *ev;
|
||||||
int nw = 0, nh = 0, fw, fh, sw, sh, contentw, contenth;
|
int nw = 0, nh = 0, fw, fh, pfw, pfh, sw, sh, contentw, contenth;
|
||||||
int framew, frameh;
|
int framew, frameh;
|
||||||
Eina_Bool active, prev_max, prev_full;
|
Eina_Bool active, prev_max, prev_full, state_change = EINA_FALSE;
|
||||||
|
|
||||||
LOGFN(__FILE__, __LINE__, __FUNCTION__);
|
LOGFN(__FILE__, __LINE__, __FUNCTION__);
|
||||||
|
|
||||||
|
@ -605,13 +605,14 @@ _ecore_evas_wl_common_cb_window_configure(void *data EINA_UNUSED, int type EINA_
|
||||||
evas_output_framespace_get(ee->evas, NULL, NULL, &framew, &frameh);
|
evas_output_framespace_get(ee->evas, NULL, NULL, &framew, &frameh);
|
||||||
contentw = wdata->win->set_config.geometry.w - (framew - sw);
|
contentw = wdata->win->set_config.geometry.w - (framew - sw);
|
||||||
contenth = wdata->win->set_config.geometry.h - (frameh - sh);
|
contenth = wdata->win->set_config.geometry.h - (frameh - sh);
|
||||||
fw = wdata->win->set_config.geometry.w - contentw;
|
pfw = fw = wdata->win->set_config.geometry.w - contentw;
|
||||||
fh = wdata->win->set_config.geometry.h - contenth;
|
pfh = fh = wdata->win->set_config.geometry.h - contenth;
|
||||||
|
|
||||||
if ((prev_max != ee->prop.maximized) ||
|
if ((prev_max != ee->prop.maximized) ||
|
||||||
(prev_full != ee->prop.fullscreen) ||
|
(prev_full != ee->prop.fullscreen) ||
|
||||||
(active != wdata->activated))
|
(active != wdata->activated))
|
||||||
{
|
{
|
||||||
|
state_change = EINA_TRUE;
|
||||||
_ecore_evas_wl_common_state_update(ee);
|
_ecore_evas_wl_common_state_update(ee);
|
||||||
sw = ee->shadow.l + ee->shadow.r;
|
sw = ee->shadow.l + ee->shadow.r;
|
||||||
sh = ee->shadow.t + ee->shadow.b;
|
sh = ee->shadow.t + ee->shadow.b;
|
||||||
|
@ -622,7 +623,21 @@ _ecore_evas_wl_common_cb_window_configure(void *data EINA_UNUSED, int type EINA_
|
||||||
fh = wdata->win->set_config.geometry.h - contenth;
|
fh = wdata->win->set_config.geometry.h - contenth;
|
||||||
}
|
}
|
||||||
if ((!nw) && (!nh))
|
if ((!nw) && (!nh))
|
||||||
return ECORE_CALLBACK_RENEW;
|
{
|
||||||
|
if ((wdata->win->set_config.serial != wdata->win->req_config.serial) &&
|
||||||
|
wdata->win->req_config.serial && wdata->win->surface &&
|
||||||
|
((!state_change) || ((pfw == fw) && (pfh == fh))))
|
||||||
|
{
|
||||||
|
if (wdata->win->xdg_configure_ack)
|
||||||
|
wdata->win->xdg_configure_ack(wdata->win->xdg_surface,
|
||||||
|
wdata->win->req_config.serial);
|
||||||
|
if (wdata->win->zxdg_configure_ack)
|
||||||
|
wdata->win->zxdg_configure_ack(wdata->win->zxdg_surface,
|
||||||
|
wdata->win->req_config.serial);
|
||||||
|
wdata->win->set_config.serial = wdata->win->req_config.serial;
|
||||||
|
}
|
||||||
|
return ECORE_CALLBACK_RENEW;
|
||||||
|
}
|
||||||
|
|
||||||
if (!ee->prop.borderless)
|
if (!ee->prop.borderless)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue