summaryrefslogtreecommitdiff
path: root/src/lib/efl_wl
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@osg.samsung.com>2017-10-18 17:11:11 -0400
committerMike Blumenkrantz <zmike@osg.samsung.com>2017-10-25 10:44:16 -0400
commit6006fab98dfb67d2317fcb9c45a529da23d5e793 (patch)
tree846c653853fd28d7fab37d6b19616426af318fba /src/lib/efl_wl
parent10c05f76c67ce10ccf01816501f681f2a41ba84c (diff)
efl_wl: more closely follow wl spec for input regions
@fix
Diffstat (limited to 'src/lib/efl_wl')
-rw-r--r--src/lib/efl_wl/efl_wl.c8
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;