e_policy_desk_area: doing view restack if needed when adjust layer 49/325449/1
authorJunseok Kim <juns.kim@samsung.com>
Mon, 2 Jun 2025 06:42:56 +0000 (15:42 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Tue, 10 Jun 2025 09:37:49 +0000 (18:37 +0900)
Change-Id: Ib75d90a7e0a3ae61d6db78d38c781357b6d8ac3b

src/bin/windowmgr/e_policy_desk_area.c

index 03d49bc9a1c3fac77c8cbb6f63f131da59c649f9..1e6dadf7a39ddd6e5266116a2a12b95cce4fc31e 100644 (file)
@@ -2141,13 +2141,15 @@ _e_comp_object_layers_add(E_Desk_Area *eda, E_Comp_Object *cw, E_Comp_Object *ab
    if (above)
      {
         E_View *above_view = e_view_client_view_get(e_client_view_get(above->ec));
-        e_view_place_above(view, above_view);
+        if (e_view_above_get(above_view) != view)
+          e_view_place_above(view, above_view);
         _e_comp_object_input_layers_update(above->layer, E_COMP_INPUT_INLIST_APPEND_RELATIVE, cw->ec, above->ec);
      }
    else if (below)
      {
         E_View *below_view = e_view_client_view_get(e_client_view_get(below->ec));
-        e_view_place_below(view, below_view);
+        if (e_view_below_get(below_view) != view)
+          e_view_place_below(view, below_view);
         _e_comp_object_input_layers_update(below->layer, E_COMP_INPUT_INLIST_PREPEND_RELATIVE, cw->ec, below->ec);
      }
    else
@@ -2157,7 +2159,11 @@ _e_comp_object_layers_add(E_Desk_Area *eda, E_Comp_Object *cw, E_Comp_Object *ab
           {
              // prepend means bottom
              E_View *layer_obj = e_policy_layer_obj_get(pdal);
-             if (layer_obj) e_view_place_above(view, layer_obj);
+             if (layer_obj)
+               {
+                  if (e_view_above_get(layer_obj) != view)
+                    e_view_place_above(view, layer_obj);
+               }
              else
                {
                   E_View_Tree *view_tree = e_policy_layer_view_tree_get(pdal);