diff options
author | Derek Foreman <derekf@osg.samsung.com> | 2018-02-08 14:36:16 -0600 |
---|---|---|
committer | Derek Foreman <derekf@osg.samsung.com> | 2018-04-20 13:00:27 -0500 |
commit | 541ab76e45f30e6849b14742ac87feb5479064f6 (patch) | |
tree | d95eef9a7a710227b27dceca4bc50fa28994ba4a | |
parent | 8b5b9989af6216dc02fa3926dbfb072205c20f1c (diff) | |
download | efl-541ab76e45f30e6849b14742ac87feb5479064f6.tar.gz |
ecore_evas_wayland: Calculate content size from shadow and framespace
Instead of using wdata->content, calculate these values.
-rw-r--r-- | src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c | 22 |
1 files changed, 16 insertions, 6 deletions
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 bf998f0b0f..320b194a6e 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 @@ -489,7 +489,8 @@ _ecore_evas_wl_common_cb_window_configure(void *data EINA_UNUSED, int type EINA_ Ecore_Evas *ee; Ecore_Evas_Engine_Wl_Data *wdata; Ecore_Wl2_Event_Window_Configure *ev; - int nw = 0, nh = 0, fw, fh, pfw, pfh; + int nw = 0, nh = 0, fw, fh, pfw, pfh, sw, sh, contentw, contenth; + int framew, frameh; Eina_Bool active, prev_max, prev_full, state_change = EINA_FALSE; LOGFN(__FILE__, __LINE__, __FUNCTION__); @@ -517,8 +518,13 @@ _ecore_evas_wl_common_cb_window_configure(void *data EINA_UNUSED, int type EINA_ nw = ev->w; nh = ev->h; - pfw = fw = wdata->content.w ? wdata->win->set_config.geometry.w - wdata->content.w : 0; - pfh = fh = wdata->content.h ? wdata->win->set_config.geometry.h - wdata->content.h : 0; + sw = ee->shadow.l + ee->shadow.r; + sh = ee->shadow.t + ee->shadow.b; + evas_output_framespace_get(ee->evas, NULL, NULL, &framew, &frameh); + contentw = wdata->win->set_config.geometry.w - (framew - sw); + contenth = wdata->win->set_config.geometry.h - (frameh - sh); + pfw = fw = wdata->win->set_config.geometry.w - contentw; + pfh = fh = wdata->win->set_config.geometry.h - contenth; if ((prev_max != ee->prop.maximized) || (prev_full != ee->prop.fullscreen) || @@ -526,10 +532,14 @@ _ecore_evas_wl_common_cb_window_configure(void *data EINA_UNUSED, int type EINA_ { state_change = EINA_TRUE; _ecore_evas_wl_common_state_update(ee); - fw = wdata->content.w ? wdata->win->set_config.geometry.w - wdata->content.w : 0; - fh = wdata->content.h ? wdata->win->set_config.geometry.h - wdata->content.h : 0; + sw = ee->shadow.l + ee->shadow.r; + sh = ee->shadow.t + ee->shadow.b; + evas_output_framespace_get(ee->evas, NULL, NULL, &framew, &frameh); + contentw = wdata->win->set_config.geometry.w - (framew - sw); + contenth = wdata->win->set_config.geometry.h - (frameh - sh); + fw = wdata->win->set_config.geometry.w - contentw; + fh = wdata->win->set_config.geometry.h - contenth; } - if ((!nw) && (!nh)) { if ((wdata->win->set_config.serial != wdata->win->req_config.serial) && |