From 2c3b1b414327937df3b6a0082df14b38b2ebc202 Mon Sep 17 00:00:00 2001 From: Jaehwan Kim Date: Thu, 31 Jan 2013 05:52:59 +0000 Subject: [PATCH] Fix the EVAS_CALLBACK_MOUSE_MOVE callback is called even if the grabbed object is invisible by proxy object. SVN revision: 83501 --- ChangeLog | 4 ++++ NEWS | 2 +- src/lib/evas/canvas/evas_events.c | 4 ++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index db3052f86f..4bd022cce1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2013-01-31 Jaehwan Kim + + * Fix the EVAS_CALLBACK_MOUSE_MOVE callback is called even if the grabbed object is invisible by proxy object. + 2013-01-31 Jihoon Kim (jihoon) * edje entry : Remove ecore_imf_context_cursor_position_set in functions related to selection. diff --git a/NEWS b/NEWS index a6b5ef5dbe..eb1d23890f 100644 --- a/NEWS +++ b/NEWS @@ -134,4 +134,4 @@ Fixes: * Fix evas gif loader to return the correct frame duration * Prevent a crash even if an invalid object is swallowed into an edje object. * Fix cache miss when active edje hash is empty. - + * Fix the EVAS_CALLBACK_MOUSE_MOVE callback is called even if the grabbed object is invisible by proxy object. diff --git a/src/lib/evas/canvas/evas_events.c b/src/lib/evas/canvas/evas_events.c index b82120095c..a30ebc8140 100644 --- a/src/lib/evas/canvas/evas_events.c +++ b/src/lib/evas/canvas/evas_events.c @@ -1598,7 +1598,7 @@ _canvas_event_feed_mouse_move(Eo *eo_e, void *_pd, va_list *list) obj->mouse_grabbed) && (!evas_event_passes_through(eo_obj, obj)) && (!evas_event_freezes_through(eo_obj, obj)) && - (!evas_object_is_source_invisible(eo_obj, obj)) && + (!evas_object_is_source_invisible(eo_obj, obj) || obj->mouse_grabbed) && (!obj->clip.clipees)) { ev.cur.canvas.x = e->pointer.x; @@ -1759,7 +1759,7 @@ _canvas_event_feed_mouse_move(Eo *eo_e, void *_pd, va_list *list) eina_list_data_find(ins, eo_obj) && (!evas_event_passes_through(eo_obj, obj)) && (!evas_event_freezes_through(eo_obj, obj)) && - (!evas_object_is_source_invisible(eo_obj, obj)) && + (!evas_object_is_source_invisible(eo_obj, obj) || obj->mouse_grabbed) && (!obj->clip.clipees) && ((!obj->precise_is_inside) || evas_object_is_inside(eo_obj, obj, x, y)) )