discomfitor pushed a commit to branch efl-1.16.

http://git.enlightenment.org/core/efl.git/commit/?id=f73e1fea16bb8ac9e5f43c57c29ac0fb80cb1353

commit f73e1fea16bb8ac9e5f43c57c29ac0fb80cb1353
Author: Chris Michael <cp.mich...@samsung.com>
Date:   Tue Nov 17 13:51:19 2015 -0500

    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.mich...@samsung.com>
---
 .../engines/wayland/ecore_evas_wayland_common.c          | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

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 ef0e7e1..5027cce 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
@@ -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

-- 


Reply via email to