policy: apply stack policy for transient below 86/259586/2 accepted/tizen/unified/20210611.013551 submit/tizen/20210610.032516 submit/tizen/20210610.063829
authorDoyoun Kang <doyoun.kang@samsung.com>
Thu, 10 Jun 2021 02:47:29 +0000 (11:47 +0900)
committerDoyoun Kang <doyoun.kang@samsung.com>
Thu, 10 Jun 2021 02:54:28 +0000 (11:54 +0900)
When a child window which sets E_TRANSIENT_BELOW policy is created,
then e places it to BOTTOM of children.

(example)
1. create transient_below child1
   => [Top] parent -> child1           [Bottom]
2. create transient_below child2
   => [Top] parent -> child1 -> child2 [Bottom]

Change-Id: I08044023e6be748bccaa58a2dc4941404ebe08aa

src/bin/e_client.c
src/bin/e_policy_stack.c

index 703b73043c25798a6a0dfd79de32a3f710f32fac..70e451c4c28fab4902ee90879d01a1a3be41693d 100644 (file)
@@ -2322,7 +2322,7 @@ _e_client_cb_evas_restack(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA
              else if (child->transient_policy == E_TRANSIENT_BELOW)
                {
                   if (above)
-                    e_client_stack_above(child, above);
+                    e_client_stack_below(child, above);
                   else
                     e_client_stack_below(child, ec);
                   above = child;
index 3385d0f1cea95cc9f5971e99ae786f1037099af0..4ec752a67757f1cec429cdf978bf7a8203a0f553 100644 (file)
@@ -291,7 +291,10 @@ _e_policy_stack_transient_for_set(E_Client *ec, E_Client *parent, Eina_Bool tran
    if ((parent) && (parent != ec) &&
        (eina_list_data_find(parent->transients, ec) != ec))
      {
-        parent->transients = eina_list_append(parent->transients, ec);
+        if (ec->transient_policy == E_TRANSIENT_BELOW)
+          parent->transients = eina_list_prepend(parent->transients, ec);
+        else
+          parent->transients = eina_list_append(parent->transients, ec);
         ec->parent = parent;
      }