From 541ab76e45f30e6849b14742ac87feb5479064f6 Mon Sep 17 00:00:00 2001 From: Derek Foreman Date: Thu, 8 Feb 2018 14:36:16 -0600 Subject: ecore_evas_wayland: Calculate content size from shadow and framespace Instead of using wdata->content, calculate these values. --- .../engines/wayland/ecore_evas_wayland_common.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'src') 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) && -- cgit v1.2.1