summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaeun Choi <jaeun12.choi@samsung.com>2014-11-13 10:50:00 +0900
committerJean-Philippe Andre <jp.andre@samsung.com>2014-12-22 22:33:11 +0900
commit04da90a696bf0dd97f42758372ff46cdb10e193a (patch)
tree43a34450e984bdb1b5d796de28627a2a834e9ae9
parent5a9786c0f3c67337f9641753e7d1355867826a58 (diff)
Evas masking: Implement event masking support
In case the clipper is a mask object, we should use precise event masking. By default precise_is_inside is not enabled because it is expensive, but it should probably be set by the application when they use masks as clippers. Signed-off-by: Jean-Philippe Andre <jp.andre@samsung.com>
-rw-r--r--src/lib/evas/canvas/evas_events.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/lib/evas/canvas/evas_events.c b/src/lib/evas/canvas/evas_events.c
index 8fdadd0cc5..dc1d793838 100644
--- a/src/lib/evas/canvas/evas_events.c
+++ b/src/lib/evas/canvas/evas_events.c
@@ -122,7 +122,11 @@ _evas_event_object_list_raw_in_get(Evas *eo_e, Eina_List *in,
122 } 122 }
123 else 123 else
124 { 124 {
125 inside = evas_object_is_in_output_rect(eo_obj, obj, x, y, 1, 1); 125 Evas_Object_Protected_Data *clip = obj->cur->clipper;
126 if (clip && clip->mask->is_mask && clip->precise_is_inside)
127 inside = evas_object_is_inside(clip->object, clip, x, y);
128 else
129 inside = evas_object_is_in_output_rect(eo_obj, obj, x, y, 1, 1);
126 130
127 if (inside) 131 if (inside)
128 { 132 {