diff options
author | Mike Blumenkrantz <zmike@osg.samsung.com> | 2017-10-18 17:11:11 -0400 |
---|---|---|
committer | Mike Blumenkrantz <zmike@osg.samsung.com> | 2017-10-25 10:44:16 -0400 |
commit | 6006fab98dfb67d2317fcb9c45a529da23d5e793 (patch) | |
tree | 846c653853fd28d7fab37d6b19616426af318fba /src/lib/efl_wl/efl_wl.c | |
parent | 10c05f76c67ce10ccf01816501f681f2a41ba84c (diff) |
efl_wl: more closely follow wl spec for input regions
@fix
Diffstat (limited to '')
-rw-r--r-- | src/lib/efl_wl/efl_wl.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/lib/efl_wl/efl_wl.c b/src/lib/efl_wl/efl_wl.c index 6be0f3a340..2bdb222501 100644 --- a/src/lib/efl_wl/efl_wl.c +++ b/src/lib/efl_wl/efl_wl.c | |||
@@ -1700,6 +1700,8 @@ comp_surface_set_input_region(struct wl_client *client EINA_UNUSED, struct wl_re | |||
1700 | { | 1700 | { |
1701 | Comp_Surface *cs = wl_resource_get_user_data(resource); | 1701 | Comp_Surface *cs = wl_resource_get_user_data(resource); |
1702 | 1702 | ||
1703 | if (cs->cursor) return; | ||
1704 | |||
1703 | cs->pending.set_input = 1; | 1705 | cs->pending.set_input = 1; |
1704 | eina_tiler_clear(cs->pending.input); | 1706 | eina_tiler_clear(cs->pending.input); |
1705 | if (region_resource) | 1707 | if (region_resource) |
@@ -2463,6 +2465,8 @@ comp_surface_create(struct wl_client *client, struct wl_resource *resource, uint | |||
2463 | cs->opaque = tiler_new(); | 2465 | cs->opaque = tiler_new(); |
2464 | cs->input = tiler_new(); | 2466 | cs->input = tiler_new(); |
2465 | comp_buffer_state_alloc(&cs->pending); | 2467 | comp_buffer_state_alloc(&cs->pending); |
2468 | cs->pending.set_input = 1; | ||
2469 | eina_tiler_rect_add(cs->pending.input, &(Eina_Rectangle){0, 0, 65535, 65535}); | ||
2466 | 2470 | ||
2467 | wl_resource_set_implementation(res, &comp_surface_interface, cs, comp_surface_impl_destroy); | 2471 | wl_resource_set_implementation(res, &comp_surface_interface, cs, comp_surface_impl_destroy); |
2468 | } | 2472 | } |
@@ -2869,6 +2873,8 @@ data_device_start_drag(struct wl_client *client, struct wl_resource *resource, s | |||
2869 | 2873 | ||
2870 | ics->cursor = 1; | 2874 | ics->cursor = 1; |
2871 | ics->drag = s; | 2875 | ics->drag = s; |
2876 | ics->pending.set_input = 1; | ||
2877 | eina_tiler_clear(ics->pending.input); | ||
2872 | evas_object_smart_member_del(ics->obj); | 2878 | evas_object_smart_member_del(ics->obj); |
2873 | evas_object_pass_events_set(ics->obj, 1); | 2879 | evas_object_pass_events_set(ics->obj, 1); |
2874 | evas_object_layer_set(ics->obj, EVAS_LAYER_MAX - 1); | 2880 | evas_object_layer_set(ics->obj, EVAS_LAYER_MAX - 1); |
@@ -3738,6 +3744,8 @@ seat_ptr_set_cursor(struct wl_client *client, struct wl_resource *resource, uint | |||
3738 | if (cs) | 3744 | if (cs) |
3739 | { | 3745 | { |
3740 | cs->cursor = 1; | 3746 | cs->cursor = 1; |
3747 | cs->pending.set_input = 1; | ||
3748 | eina_tiler_clear(cs->pending.input); | ||
3741 | evas_object_pass_events_set(cs->obj, 1); | 3749 | evas_object_pass_events_set(cs->obj, 1); |
3742 | } | 3750 | } |
3743 | if (s->ptr.cursor.surface) s->ptr.cursor.surface->cursor = 0; | 3751 | if (s->ptr.cursor.surface) s->ptr.cursor.surface->cursor = 0; |