devilhorns pushed a commit to branch master.

commit 127bee584d9083019b14697a1d087f5d69bf9ad1
Author: Chris Michael <[email protected]>
Date:   Wed May 1 07:46:36 2013 +0100

    Revert "Fix some formatting."
    
    This reverts commit 809144780e79387b0dfa55abd117fa0bb8d0a627.
    
    Conflicts:
    
        src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c
    
    Signed-off-by: Chris Michael <[email protected]>
---
 .../engines/wayland/ecore_evas_wayland_shm.c       | 90 ++++++++++++++++++----
 1 file changed, 76 insertions(+), 14 deletions(-)

diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c 
b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c
index 5749c23..33fec56 100644
--- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c
+++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c
@@ -189,6 +189,7 @@ ecore_evas_wayland_shm_new_internal(const char *disp_name, 
unsigned int parent,
    wdata->win = 
      ecore_wl_window_new(p, x, y, w, h, ECORE_WL_WINDOW_BUFFER_TYPE_SHM);
    ee->prop.window = wdata->win->id;
+   ecore_wl_window_state_changed_cb_set(wdata->win, 
_ecore_evas_wl_common_state_change, ee);
 
    if ((einfo = (Evas_Engine_Info_Wayland_Shm 
*)evas_engine_info_get(ee->evas)))
      {
@@ -248,32 +249,92 @@ static void
 _ecore_evas_wl_resize(Ecore_Evas *ee, int w, int h)
 {
    Ecore_Evas_Engine_Wl_Data *wdata;
+   int orig_w, orig_h;
 
    LOGFN(__FILE__, __LINE__, __FUNCTION__);
 
    if (!ee) return;
+   if (w < 1) w = 1;
+   if (h < 1) h = 1;
 
-   _ecore_evas_wl_common_resize(ee, w, h);
+   ee->req.w = w;
+   ee->req.h = h;
+   orig_w = w;
+   orig_h = h;
 
    wdata = ee->engine.data;
 
-   if (wdata->win)
+   if (!ee->prop.fullscreen)
      {
-        Ecore_Wl_Window *win;
-        Evas_Engine_Info_Wayland_Shm *einfo;
+        int fw = 0, fh = 0;
 
-        win = wdata->win;
+        if (ee->prop.min.w > w) w = ee->prop.min.w;
+        else if (w > ee->prop.max.w) w = ee->prop.max.w;
+        if (ee->prop.min.h > h) h = ee->prop.min.h;
+        else if (h > ee->prop.max.h) h = ee->prop.max.h;
 
-        if ((einfo = (Evas_Engine_Info_Wayland_Shm 
*)evas_engine_info_get(ee->evas)))
-          einfo->info.edges = win->edges;
+        orig_w = w;
+        orig_h = h;
 
-        win->edges = 0;
-
-        win->server_allocation = win->allocation;
-        ecore_wl_window_update_size(wdata->win, w, h);
+        evas_output_framespace_get(ee->evas, NULL, NULL, &fw, &fh);
+        if ((ee->rotation == 90) || (ee->rotation == 270))
+          {
+             w += fh;
+             h += fw;
+          }
+        else
+          {
+             w += fw;
+             h += fh;
+          }
      }
 
-   if (ee->func.fn_resize) ee->func.fn_resize(ee);
+   if ((ee->w != w) || (ee->h != h))
+     {
+        ee->w = orig_w;
+        ee->h = orig_h;
+
+        if ((ee->rotation == 90) || (ee->rotation == 270))
+          {
+             evas_output_size_set(ee->evas, h, w);
+             evas_output_viewport_set(ee->evas, 0, 0, h, w);
+          }
+        else
+          {
+             evas_output_size_set(ee->evas, w, h);
+             evas_output_viewport_set(ee->evas, 0, 0, w, h);
+          }
+
+        if (ee->prop.avoid_damage)
+          {
+             int pdam = 0;
+
+             pdam = ecore_evas_avoid_damage_get(ee);
+             ecore_evas_avoid_damage_set(ee, 0);
+             ecore_evas_avoid_damage_set(ee, pdam);
+          }
+
+        if (wdata->frame)
+          evas_object_resize(wdata->frame, w, h);
+
+        if (wdata->win)
+          {
+             Ecore_Wl_Window *win;
+             Evas_Engine_Info_Wayland_Shm *einfo;
+
+             win = wdata->win;
+
+             if ((einfo = (Evas_Engine_Info_Wayland_Shm 
*)evas_engine_info_get(ee->evas)))
+               einfo->info.edges = win->edges;
+
+             win->edges = 0;
+
+             win->server_allocation = win->allocation;
+             ecore_wl_window_update_size(wdata->win, w, h);
+          }
+
+        if (ee->func.fn_resize) ee->func.fn_resize(ee);
+     }
 }
 
 static void 
@@ -301,7 +362,9 @@ _ecore_evas_wl_rotation_set(Ecore_Evas *ee, int rotation, 
int resize)
      return;
    einfo->info.rotation = rotation;
    if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo))
-     ERR("evas_engine_info_set() for engine '%s' failed.", ee->driver);
+   {
+       ERR("evas_engine_info_set() for engine '%s' failed.", ee->driver);
+   }
 
    _ecore_evas_wl_common_rotation_set(ee, rotation, resize);
 }
@@ -458,7 +521,6 @@ _ecore_evas_wayland_shm_resize(Ecore_Evas *ee, int location)
 
    if (!ee) return;
    wdata = ee->engine.data;
-
    if (wdata->win) 
      {
         int fw, fh;

-- 

------------------------------------------------------------------------------
Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET
Get 100% visibility into your production application - at no cost.
Code-level diagnostics for performance bottlenecks with <2% overhead
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap1

Reply via email to