summaryrefslogtreecommitdiff
path: root/src/lib/evas/canvas/evas_object_main.c
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@samsung.com>2018-06-15 11:22:37 -0400
committerChris Michael <cp.michael@samsung.com>2018-06-15 11:22:38 -0400
commit46941804a000a7d3998e99bb10c9f4fee55efc94 (patch)
tree6ceadfae384a036d1fa51c13960e94e6e215a8e8 /src/lib/evas/canvas/evas_object_main.c
parent1c52aede2b4ff6a2978bc388c1e9933ae3e98844 (diff)
downloadefl-46941804a000a7d3998e99bb10c9f4fee55efc94.tar.gz
Revert "evas: handle event COW modification when COW is already active"
Summary: This reverts commit cd6b890c7322ec67d3c41281bda3b22d4a481775. this resolves complaints from a safety check in the debug profile, but it seems more likely that the safety check is bogus and should be removed rather than making this code more complex Reviewers: devilhorns Reviewed By: devilhorns Subscribers: cedric, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D6283
Diffstat (limited to 'src/lib/evas/canvas/evas_object_main.c')
-rw-r--r--src/lib/evas/canvas/evas_object_main.c21
1 files changed, 8 insertions, 13 deletions
diff --git a/src/lib/evas/canvas/evas_object_main.c b/src/lib/evas/canvas/evas_object_main.c
index 6b8d4cc66d..e0856b7561 100644
--- a/src/lib/evas/canvas/evas_object_main.c
+++ b/src/lib/evas/canvas/evas_object_main.c
@@ -97,7 +97,7 @@ _evas_object_pointer_data_find(Evas_Object_Protected_Data *obj,
}
static void
-_evas_object_pointer_grab_del(Evas_Object_Protected_Data *obj, Evas_Object_Pointer_Data *pdata, Evas_Object_Events_Data *ev);
+_evas_object_pointer_grab_del(Evas_Object_Protected_Data *obj, Evas_Object_Pointer_Data *pdata);
static void
_evas_device_del_cb(void *data, const Efl_Event *ev)
@@ -109,11 +109,12 @@ _evas_device_del_cb(void *data, const Efl_Event *ev)
EINA_SAFETY_ON_NULL_RETURN(obj);
pdata = _evas_object_pointer_data_find(obj, ev->object);
if (!pdata) return;
- _evas_object_pointer_grab_del(obj, pdata, NULL);
+ _evas_object_pointer_grab_del(obj, pdata);
}
static void
-_evas_object_pointer_grab_del(Evas_Object_Protected_Data *obj, Evas_Object_Pointer_Data *pdata, Evas_Object_Events_Data *ev)
+_evas_object_pointer_grab_del(Evas_Object_Protected_Data *obj,
+ Evas_Object_Pointer_Data *pdata)
{
if ((pdata->mouse_grabbed > 0) && (obj->layer) && (obj->layer->evas))
pdata->evas_pdata->seat->mouse_grabbed -= pdata->mouse_grabbed;
@@ -122,15 +123,9 @@ _evas_object_pointer_grab_del(Evas_Object_Protected_Data *obj, Evas_Object_Point
pdata->evas_pdata->seat->object.in = eina_list_remove(pdata->evas_pdata->seat->object.in, obj->object);
efl_event_callback_del(pdata->evas_pdata->pointer, EFL_EVENT_DEL,
_evas_device_del_cb, obj->object);
- /* COW may already be writing */
- if (ev)
- ev->pointer_grabs = eina_inlist_remove(ev->pointer_grabs, EINA_INLIST_GET(pdata));
- else
- {
- EINA_COW_WRITE_BEGIN(evas_object_events_cow, obj->events, Evas_Object_Events_Data, events)
- events->pointer_grabs = eina_inlist_remove(events->pointer_grabs, EINA_INLIST_GET(pdata));
- EINA_COW_WRITE_END(evas_object_events_cow, obj->events, events);
- }
+ EINA_COW_WRITE_BEGIN(evas_object_events_cow, obj->events, Evas_Object_Events_Data, events)
+ events->pointer_grabs = eina_inlist_remove(events->pointer_grabs, EINA_INLIST_GET(pdata));
+ EINA_COW_WRITE_END(evas_object_events_cow, obj->events, events);
free(pdata);
}
@@ -1276,7 +1271,7 @@ _efl_canvas_object_efl_object_invalidate(Eo *eo_obj, Evas_Object_Protected_Data
_evas_post_event_callback_call(obj->layer->evas->evas, obj->layer->evas, event_id);
}
EINA_INLIST_FREE(events->pointer_grabs, pdata)
- _evas_object_pointer_grab_del(obj, pdata, events);
+ _evas_object_pointer_grab_del(obj, pdata);
EINA_LIST_FREE(events->events_whitelist, dev)
efl_event_callback_del(dev, EFL_EVENT_DEL, _whitelist_events_device_remove_cb, obj);
}