e_comp_object: set the pass events on the image object of the comp_object 06/312706/5
authorChangyeon Lee <cyeon.lee@samsung.com>
Thu, 13 Jun 2024 07:11:49 +0000 (16:11 +0900)
committerDoyoun Kang <doyoun.kang@samsung.com>
Thu, 13 Jun 2024 08:50:29 +0000 (08:50 +0000)
The image object should not receive the event because the default input object
should receive the input event.
Otherwise, when the image object and the default input object are different,
the image object may receive the input event.

Change-Id: I431fe7ea7f461528e9bc86bfac6a8edfb2f5f63b

src/bin/e_comp_object.c

index 8282af109db039af9181e508e4bf6afa42a88d14..5524db56f55818408cec1c64f23f011e189a33b5 100644 (file)
@@ -1206,7 +1206,7 @@ _e_comp_object_shadow_setup(E_Comp_Object *cw)
      }
 
    evas_object_pass_events_set(cw->default_input_obj, pass_event_flag);
-   evas_object_pass_events_set(cw->obj, pass_event_flag);
+   evas_object_pass_events_set(cw->obj, EINA_TRUE);
 
    return EINA_TRUE;
 }
@@ -2703,7 +2703,7 @@ _e_comp_intercept_show(void *data, Evas_Object *obj EINA_UNUSED)
              evas_object_image_smooth_scale_set(cw->obj, e_comp_config_get()->smooth_windows);
              evas_object_name_set(cw->obj, "cw->obj");
              evas_object_image_colorspace_set(cw->obj, EVAS_COLORSPACE_ARGB8888);
-             evas_object_intercept_color_set_callback_add(cw->obj, _e_comp_intercept_obj_color_set, cw);
+             evas_object_pass_events_set(cw->obj, EINA_TRUE);
           }
         _e_comp_object_alpha_set(cw);
 
@@ -2904,7 +2904,7 @@ _e_comp_object_frame_recalc(E_Comp_Object *cw)
                }
           }
         evas_object_pass_events_set(cw->default_input_obj, pass_event_flag);
-        evas_object_pass_events_set(cw->obj, pass_event_flag);
+        evas_object_pass_events_set(cw->obj, EINA_TRUE);
      }
    else
      {
@@ -4193,7 +4193,6 @@ e_comp_object_input_area_set(Evas_Object *obj, int x, int y, int w, int h)
           cw->ec->client.x + (!!cw->frame_object * cw->client_inset.l) + x,
           cw->ec->client.y + (!!cw->frame_object * cw->client_inset.t) + y, w, h);
         evas_object_pass_events_set(cw->default_input_obj, 1);
-        evas_object_pass_events_set(cw->obj, 1);
         if (cw->visible)
           {
              evas_object_show(input_rect_data->obj);
@@ -4205,7 +4204,6 @@ e_comp_object_input_area_set(Evas_Object *obj, int x, int y, int w, int h)
         evas_object_smart_member_del(cw->input_obj);
         E_FREE_FUNC(cw->input_obj, evas_object_del);
         evas_object_pass_events_set(cw->default_input_obj, 0);
-        evas_object_pass_events_set(cw->obj, 0);
      }
 }
 
@@ -5981,6 +5979,7 @@ e_comp_object_content_set(Evas_Object *obj,
    cw->content_type = type;
    e_util_size_debug_set(cw->obj, 1);
    evas_object_name_set(cw->obj, "cw->obj");
+   evas_object_pass_events_set(cw->obj, EINA_TRUE);
    _e_comp_object_alpha_set(cw);
 
    if (cw->shobj)
@@ -6045,7 +6044,7 @@ e_comp_object_content_unset(Evas_Object *obj)
    evas_object_image_smooth_scale_set(cw->obj, e_comp_config_get()->smooth_windows);
    evas_object_name_set(cw->obj, "cw->obj");
    evas_object_image_colorspace_set(cw->obj, EVAS_COLORSPACE_ARGB8888);
-   evas_object_intercept_color_set_callback_add(obj, _e_comp_intercept_obj_color_set, cw);
+   evas_object_pass_events_set(cw->obj, EINA_TRUE);
    _e_comp_object_alpha_set(cw);
 
    if (cw->shobj)