e_hwc_window: add e_hwc_window_comp_override_set 99/305999/3
authorChangyeon Lee <cyeon.lee@samsung.com>
Thu, 18 Jan 2024 03:10:53 +0000 (12:10 +0900)
committerchangyeon lee <cyeon.lee@samsung.com>
Mon, 19 Feb 2024 05:50:50 +0000 (05:50 +0000)
Change-Id: Ib68ab414ac1e2ba80d4f39b443d85fc5d41cadf5

src/bin/e_comp.c
src/bin/e_hwc_window.c
src/bin/e_hwc_window.h

index 952cac01f97677628420ad7845b0c44318bfc8c6..1e4926932c4a107df4ec48304e979420165c4d99 100644 (file)
@@ -691,6 +691,9 @@ e_comp_client_override_del(E_Client *ec)
      {
         ec->comp_override = 0;
         e_comp_render_queue();
+
+        if (ec->hwc_window)
+          e_hwc_window_comp_override_set(ec->hwc_window, EINA_FALSE);
      }
 }
 
@@ -701,7 +704,12 @@ e_comp_client_override_add(E_Client *ec)
 
    ec->comp_override++;
    if (ec->comp_override > 0)
-     e_comp_hwc_client_end(ec, __FUNCTION__);
+     {
+        if (ec->hwc_window)
+          e_hwc_window_comp_override_set(ec->hwc_window, EINA_TRUE);
+          
+        e_comp_hwc_client_end(ec, __FUNCTION__);
+     }
 }
 
 EINTERN E_Comp *
index 7adcf2ab7be59da88e76196303aec8396b7ebd1a..35172971e8cee13254aa0c76ef2737ee16510bfc 100644 (file)
@@ -3338,3 +3338,15 @@ e_hwc_window_below_transparent_obj_set(E_Hwc_Window *hwc_window, Eina_Bool set)
         EHWINF("Unset below_transparent_obj", hwc_window->ec, hwc_window->hwc, hwc_window);
      }
 }
+
+EINTERN Eina_Bool
+e_hwc_window_comp_override_set(E_Hwc_Window *hwc_window, Eina_Bool set)
+{
+   EINA_SAFETY_ON_NULL_RETURN_VAL(hwc_window, EINA_FALSE);
+
+   if (hwc_window->comp_override == set) return EINA_TRUE;
+
+   hwc_window->comp_override = set;
+
+   return EINA_TRUE;
+}
index 043fefe5cdf98dd9cbfec499ce29af5f93e088f0..2d86189ead309af2eb077a6e2bfda261560454a3 100644 (file)
@@ -148,6 +148,8 @@ struct _E_Hwc_Window
    Evas_Object                   *below_transparent_obj;
 
    Eina_Bool                      queue_unset_waiting;
+
+   Eina_Bool                      comp_override;
 };
 
 struct _E_Hwc_Window_Target
@@ -254,5 +256,7 @@ EINTERN Eina_Bool                 e_hwc_window_presentation_callback_call(E_Hwc_
 
 EINTERN void                      e_hwc_window_below_transparent_obj_set(E_Hwc_Window *hwc_window, Eina_Bool set);
 
+EINTERN Eina_Bool                 e_hwc_window_comp_override_set(E_Hwc_Window *hwc_window, Eina_Bool set);
+
 #endif // E_HWC_WINDOW_H
 #endif