evas clip: stop move events feeds.
authorHermet Park <hermetpark@gmail.com>
Fri, 20 Jul 2018 14:36:00 +0000 (10:36 -0400)
committerShinwoo Kim <cinoo.kim@samsung.com>
Tue, 24 Jul 2018 05:37:21 +0000 (14:37 +0900)
Summary:
there is no point to feeding mouse events
if clipped object is invisible because
previsou/current situation won't be different.

fyi, move events won't be triggered if prev/cur coordinates
are same.

Reviewers: #committers, zmike

Reviewed By: #committers, zmike

Subscribers: cedric, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6645

src/lib/evas/canvas/evas_clip.c

index ae6fffb..c69097d 100644 (file)
@@ -394,7 +394,7 @@ _efl_canvas_object_clip_set(Eo *eo_obj, Evas_Object_Protected_Data *obj, Evas_Ob
    evas_object_update_bounding_box(eo_obj, obj, NULL);
    evas_object_clip_dirty(eo_obj, obj);
    evas_object_recalc_clippees(obj);
-   if ((!obj->is_smart) &&
+   if (obj->cur->visible && (!obj->is_smart) &&
        (!((obj->map->cur.map) && (obj->map->cur.usemap))))
      {
         _evas_canvas_event_pointer_in_rect_mouse_move_feed(obj->layer->evas,
@@ -442,7 +442,8 @@ _clip_unset(Eo *eo_obj, Evas_Object_Protected_Data *obj)
    evas_object_change(eo_obj, obj);
    evas_object_clip_dirty(eo_obj, obj);
    evas_object_recalc_clippees(obj);
-   if ((!obj->is_smart) &&
+
+   if (obj->cur->visible && (!obj->is_smart) &&
        (!((obj->map->cur.map) && (obj->map->cur.usemap))))
      {
         _evas_canvas_event_pointer_in_rect_mouse_move_feed(obj->layer->evas,