diff options
author | Jaeun Choi <jaeun12.choi@samsung.com> | 2014-11-13 10:50:00 +0900 |
---|---|---|
committer | Jean-Philippe Andre <jp.andre@samsung.com> | 2015-01-07 15:06:02 +0900 |
commit | 6e8e5e89b594670cbce979b272697c87108f39da (patch) | |
tree | af59a07b5a60d0d4dc7eb9e74eda25b71a770183 /src/lib | |
parent | 73919ea43708b4caa980ca59c3d4a2fa8864aef2 (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>
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/evas/canvas/evas_events.c | 6 |
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 56ae091d64..39811c44ab 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 | { |