e_comp_object: add e_comp_object_image_filter_set_listener_add 07/306207/1
authorChangyeon Lee <cyeon.lee@samsung.com>
Mon, 22 Jan 2024 09:17:19 +0000 (18:17 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Mon, 19 Feb 2024 04:12:41 +0000 (13:12 +0900)
Change-Id: I9a5d61e43b1a0511d527e932868ac0e0613d4807

src/bin/e_comp_object.c
src/bin/e_comp_object_intern.h

index 17d7e68..25c800b 100644 (file)
@@ -3081,6 +3081,7 @@ _e_comp_smart_add(Evas_Object *obj)
    wl_signal_init(&cw->events.stack_above);
    wl_signal_init(&cw->events.stack_below);
 #endif
+   wl_signal_init(&cw->events.image_filter_set);
 
    cw->smart_obj = obj;
    cw->x = cw->y = cw->w = cw->h = -1;
@@ -6270,6 +6271,8 @@ e_comp_object_image_filter_set(Evas_Object *obj, E_Comp_Image_Filter filter)
    if (e_object_is_del(E_OBJECT(cw->ec))) return EINA_FALSE;
    if (!e_client_cdata_get(cw->ec)) return EINA_FALSE;
 
+   if (cw->image_filter == filter) return EINA_TRUE;
+
    switch (filter)
      {
       case E_COMP_IMAGE_FILTER_BLUR:
@@ -6289,6 +6292,8 @@ e_comp_object_image_filter_set(Evas_Object *obj, E_Comp_Image_Filter filter)
 
    cw->image_filter = filter;
 
+   wl_signal_emit_mutable(&cw->events.image_filter_set, NULL);
+
    return EINA_TRUE;
 }
 
@@ -6611,3 +6616,10 @@ e_comp_object_stack_below_listener_add(Evas_Object *obj, struct wl_listener *lis
    wl_signal_add(&cw->events.stack_below, listener);
 }
 #endif
+
+EINTERN void
+e_comp_object_image_filter_set_listener_add(Evas_Object *obj, struct wl_listener *listener)
+{
+   API_ENTRY;
+   wl_signal_add(&cw->events.image_filter_set, listener);
+}
index b7f128c..63325ae 100644 (file)
@@ -148,6 +148,7 @@ struct _E_Comp_Object
         struct wl_signal set_layer;
         struct wl_signal stack_above;
         struct wl_signal stack_below;
+        struct wl_signal image_filter_set;
      } events;
 };
 //#endif
@@ -279,4 +280,6 @@ EINTERN void e_comp_object_stack_above_listener_add(Evas_Object *obj, struct wl_
 EINTERN void e_comp_object_stack_below_listener_add(Evas_Object *obj, struct wl_listener *listener);
 //#endif
 
+EINTERN void e_comp_object_image_filter_set_listener_add(Evas_Object *obj, struct wl_listener *listener);
+
 #endif