e_desk: update maximize if ec is a member of desk->smart_obj 31/160631/1
authorJuyeon Lee <juyeonne.lee@samsung.com>
Fri, 17 Nov 2017 07:34:00 +0000 (16:34 +0900)
committerJuyeon Lee <juyeonne.lee@samsung.com>
Fri, 17 Nov 2017 07:34:11 +0000 (16:34 +0900)
E Client as an member of smart object is not changed even though
parent obj(e_desk->smart_obj) is changed, so
code has been added as an workaround

Change-Id: I2340570736474190342c82dead0f4a6a97cf6d96

src/bin/e_desk.c

index 6d68146..b8220e0 100644 (file)
@@ -797,7 +797,9 @@ e_desk_geometry_set(E_Desk *desk, int x, int y, int w, int h)
 {
    E_Client *ec;
    E_Maximize max;
-   Eina_List *l;
+   Eina_List *l = NULL, *ll = NULL;
+   Evas_Object *m;
+
    int cx, cy, dx, dy;
 
    if (!e_config->use_desk_smart_obj)
@@ -845,6 +847,20 @@ e_desk_geometry_set(E_Desk *desk, int x, int y, int w, int h)
           }
      }
 
+   // E Client as an member of smart object is not changed even though parent obj is changed
+   // Workaround : update max geometry if ec is a member of desk->smart_obj
+   EINA_LIST_FOREACH(evas_object_smart_members_get(desk->smart_obj), ll, m)
+     {
+        ec = evas_object_data_get(m, "E_Client");
+        if (ec && ec->maximized)
+          {
+             max = ec->maximized;
+             ec->maximized = E_MAXIMIZE_NONE;
+             e_client_maximize(ec, max);
+          }
+     }
+
+   // apply geometry on smart obj
    evas_object_geometry_set(desk->smart_obj, x, y, w, h);
    e_comp_render_queue();
 }