e_client: add APIs (e_client_stack_above/e_client_stack_below) 53/230853/2 accepted/tizen/unified/20200416.001148 submit/tizen/20200415.025022
authorDoyoun Kang <doyoun.kang@samsung.com>
Wed, 15 Apr 2020 02:30:08 +0000 (11:30 +0900)
committerDoyoun Kang <doyoun.kang@samsung.com>
Wed, 15 Apr 2020 02:31:38 +0000 (11:31 +0900)
We add new APIs
- e_client_stack_above
- e_client_stack_below

And we recommend that E and E's modules have to use these APIs instead of
evas_object_stack_above and evas_object_stack_below.

Change-Id: I1e31f2a3542fdf71139d31e07850703873279cbf

src/bin/e_client.c
src/bin/e_client.h
src/bin/e_comp_wl_subsurface.c
src/bin/e_policy_stack.c
src/bin/e_policy_wl.c
src/bin/e_slot.c
src/bin/e_test_helper.c

index 07c2365a0471b2e85547d3a0d9929643ef894234..e3f279e71437c64ce75b1f34f8d8b2f01eb02ee0 100644 (file)
@@ -2275,17 +2275,17 @@ _e_client_cb_evas_restack(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA
              if (child->transient_policy == E_TRANSIENT_ABOVE)
                {
                   if (below)
-                    evas_object_stack_below(child->frame, below->frame);
+                    e_client_stack_below(child, below);
                   else
-                    evas_object_stack_above(child->frame, ec->frame);
+                    e_client_stack_above(child, ec);
                   below = child;
                }
              else if (child->transient_policy == E_TRANSIENT_BELOW)
                {
                   if (above)
-                    evas_object_stack_above(child->frame, above->frame);
+                    e_client_stack_above(child, above);
                   else
-                    evas_object_stack_below(child->frame, ec->frame);
+                    e_client_stack_below(child, ec);
                   above = child;
                }
 
@@ -7948,6 +7948,28 @@ e_client_lower(E_Client *ec)
    evas_object_lower(ec->frame);
 }
 
+E_API void
+e_client_stack_above(E_Client *ec, E_Client *above)
+{
+   if (!ec) return;
+   if (!ec->frame) return;
+   if (!above) return;
+   if (!above->frame) return;
+
+   evas_object_stack_above(ec->frame, above->frame);
+}
+
+E_API void
+e_client_stack_below(E_Client *ec, E_Client *below)
+{
+   if (!ec) return;
+   if (!ec->frame) return;
+   if (!below) return;
+   if (!below->frame) return;
+
+   evas_object_stack_below(ec->frame, below->frame);
+}
+
 static Eina_Bool
 _e_client_surface_tree_foreach_helper(E_Client *ec, E_Client_Surface_Tree_Foreach func, void *data)
 {
index 9aa39b5dc1ba5ed40afc90e7fc213e7c0a609645..94221a0d1ec970e2a921aa086f208b01e22e8631 100644 (file)
@@ -1231,6 +1231,10 @@ E_API Eina_Bool e_client_desk_group_set(E_Client *ec, E_Desk_Group *edg);
 
 E_API void      e_client_raise(E_Client *ec);
 E_API void      e_client_lower(E_Client *ec);
+// ec is placed on the above
+E_API void      e_client_stack_above(E_Client *ec, E_Client *above);
+// ec is placed under the below
+E_API void      e_client_stack_below(E_Client *ec, E_Client *below);
 
 EINTERN void    e_client_surface_tree_foreach(E_Client *ec, E_Client_Surface_Tree_Foreach func, void *data);
 
index 0684737a7cfe614d96d7ff834bbd7308ec4b9f18..f3d8329f670543724b98f6cb6657a8e3b913344f 100644 (file)
@@ -41,7 +41,7 @@ _e_comp_wl_subsurface_restack(E_Client *ec)
      {
         if (!subc || !subc->comp_data || e_object_is_del(E_OBJECT(subc))) continue;
         subc->comp_data->sub.restacking = EINA_TRUE;
-        evas_object_stack_above(subc->frame, temp->frame);
+        e_client_stack_above(subc, temp);
         subc->comp_data->sub.restacking = EINA_FALSE;
         temp = subc;
      }
@@ -51,7 +51,7 @@ _e_comp_wl_subsurface_restack(E_Client *ec)
      {
         if (!subc || !subc->comp_data || e_object_is_del(E_OBJECT(subc))) continue;
         subc->comp_data->sub.restacking = EINA_TRUE;
-        evas_object_stack_below(subc->frame, temp->frame);
+        e_client_stack_below(subc, temp);
         subc->comp_data->sub.restacking = EINA_FALSE;
         temp = subc;
      }
index 62b7d26790f29c21e091eace771afb20d0c0a192..b43e4b18de164d24b2a0614f45891dcc751a08c5 100644 (file)
@@ -143,13 +143,13 @@ _e_policy_stack_transient_for_apply(E_Client *ec)
           }
 
         if (top)
-          evas_object_stack_above(ec->frame, top->frame);
+          e_client_stack_above(ec, top);
         else
-          evas_object_stack_above(ec->frame, ec->parent->frame);
+          e_client_stack_above(ec, ec->parent);
      }
    else if (ec->transient_policy == E_TRANSIENT_BELOW)
      {
-        evas_object_stack_below(ec->frame, ec->parent->frame);
+        e_client_stack_below(ec, ec->parent);
      }
 }
 
@@ -398,7 +398,7 @@ e_policy_stack_below(E_Client *ec, E_Client *below_ec)
    EINA_SAFETY_ON_NULL_RETURN(below_ec);
    EINA_SAFETY_ON_NULL_RETURN(below_ec->frame);
 
-   evas_object_stack_below(ec->frame, below_ec->frame);
+   e_client_stack_below(ec, below_ec);
    e_comp_wl_subsurface_stack_update(below_ec);
    if (e_config->transient.iconify)
      {
@@ -421,7 +421,7 @@ e_policy_stack_above(E_Client *ec, E_Client *above_ec)
    EINA_SAFETY_ON_NULL_RETURN(above_ec);
    EINA_SAFETY_ON_NULL_RETURN(above_ec->frame);
 
-   evas_object_stack_above(ec->frame, above_ec->frame);
+   e_client_stack_above(ec, above_ec);
    e_comp_wl_subsurface_stack_update(above_ec);
    if (e_config->transient.iconify)
      {
index 6b4e181f1350dee3309bd001a6441be404e20bd9..9b1cbc3c0a53f6a910ca2dfb74402cf8a8d5b0e0 100644 (file)
@@ -816,7 +816,7 @@ _e_policy_wl_tzsh_srv_tvsrv_bind_update(void)
               e_client_util_win_get(tzsh_srv_ec));
 
         e_policy_stack_transient_for_set(tzsh_srv_ec, tzsh_client_ec);
-        evas_object_stack_below(tzsh_srv_ec->frame, tzsh_client_ec->frame);
+        e_client_stack_below(tzsh_srv_ec, tzsh_client_ec);
      }
    else
      {
index 5f05f6d6a63fab8fc3ece37230ee3dccc660ee89..8d0d5de5a2161a06e52739dc95f9c847bf200029 100644 (file)
@@ -360,7 +360,7 @@ e_slot_raise(Evas_Object *obj)
      {
         ELOGF("SLOT", "e_slot_raise |raise ec - id:%d [cnt:%d]pid:%d", ec2, sd->id, cnt++, ec2->netwm.pid);
         if (top_ec == ec2) e_client_raise(ec2);
-        else evas_object_stack_below(ec2->frame, below_ec->frame);
+        else e_client_stack_below(ec2, below_ec);
         below_ec = ec2;
      }
 
index 527486af3e991a0c785a4df78bc5d0f4f1f02392..b247597c90d4ff752cb8fd2c2009110226cc4f62 100644 (file)
@@ -420,9 +420,9 @@ _e_test_helper_restack(Ecore_Window win, Ecore_Window target, int above)
      {
 
         if (above)
-          evas_object_stack_above(ec->frame, tec->frame);
+          e_client_stack_above(ec, tec);
         else
-          evas_object_stack_below(ec->frame, tec->frame);
+          e_client_stack_below(ec, tec);
      }
 }