forked from enlightenment/efl
ecore-evas-wl: Fix issue of improper window geometry
This fixes an issue where maximizing a window would set improper xdg surface window geometry. We receive window configure sizes based on xdg surface window geometry, so we need to subtract framespace there or else window size grows when maximizing/unmaximizing multiple times. This also adjusts the call to xdg_surface_set_window_geometry to account for framespace (Fixes T2842). @fix Signed-off-by: Chris Michael <cp.michael@samsung.com>
This commit is contained in:
parent
e04146f7de
commit
d34ad18f30
|
@ -168,6 +168,7 @@ _ecore_evas_wl_common_cb_window_configure(void *data EINA_UNUSED, int type EINA_
|
|||
Ecore_Evas_Engine_Wl_Data *wdata;
|
||||
Ecore_Wl_Event_Window_Configure *ev;
|
||||
int nw = 0, nh = 0;
|
||||
int fw = 0, fh = 0;
|
||||
Eina_Bool prev_max, prev_full;
|
||||
|
||||
LOGFN(__FILE__, __LINE__, __FUNCTION__);
|
||||
|
@ -190,6 +191,18 @@ _ecore_evas_wl_common_cb_window_configure(void *data EINA_UNUSED, int type EINA_
|
|||
if (nw < 1) nw = 1;
|
||||
if (nh < 1) nh = 1;
|
||||
|
||||
evas_output_framespace_get(ee->evas, NULL, NULL, &fw, &fh);
|
||||
if (ECORE_EVAS_PORTRAIT(ee))
|
||||
{
|
||||
nw -= fw;
|
||||
nh -= fh;
|
||||
}
|
||||
else
|
||||
{
|
||||
nw -= fh;
|
||||
nh -= fw;
|
||||
}
|
||||
|
||||
if (prev_full != ee->prop.fullscreen)
|
||||
_ecore_evas_wl_common_border_update(ee);
|
||||
|
||||
|
@ -636,8 +649,9 @@ _ecore_evas_wl_common_resize(Ecore_Evas *ee, int w, int h)
|
|||
|
||||
if (ee->func.fn_resize) ee->func.fn_resize(ee);
|
||||
}
|
||||
|
||||
if (wdata->win)
|
||||
ecore_wl_window_update_size(wdata->win, ee->req.w, ee->req.h);
|
||||
ecore_wl_window_update_size(wdata->win, w, h);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
Loading…
Reference in New Issue