forked from enlightenment/efl
ecore-evas: block buffer canvas events during deletion
internal evas is destroyed before engine delete function is called, so do not refeed events received during this time @fix
This commit is contained in:
parent
b6b0b1b5b2
commit
db06108f0d
|
@ -255,6 +255,7 @@ _ecore_evas_buffer_cb_mouse_in(void *data, Evas *e, Evas_Object *obj EINA_UNUSED
|
||||||
|
|
||||||
ee = data;
|
ee = data;
|
||||||
ev = event_info;
|
ev = event_info;
|
||||||
|
if (!ee->evas) return;
|
||||||
_ecore_evas_buffer_transfer_modifiers_locks(e, ee->evas);
|
_ecore_evas_buffer_transfer_modifiers_locks(e, ee->evas);
|
||||||
evas_event_feed_mouse_in(ee->evas, ev->timestamp, NULL);
|
evas_event_feed_mouse_in(ee->evas, ev->timestamp, NULL);
|
||||||
}
|
}
|
||||||
|
@ -267,6 +268,7 @@ _ecore_evas_buffer_cb_mouse_out(void *data, Evas *e, Evas_Object *obj EINA_UNUSE
|
||||||
|
|
||||||
ee = data;
|
ee = data;
|
||||||
ev = event_info;
|
ev = event_info;
|
||||||
|
if (!ee->evas) return;
|
||||||
_ecore_evas_buffer_transfer_modifiers_locks(e, ee->evas);
|
_ecore_evas_buffer_transfer_modifiers_locks(e, ee->evas);
|
||||||
evas_event_feed_mouse_out(ee->evas, ev->timestamp, NULL);
|
evas_event_feed_mouse_out(ee->evas, ev->timestamp, NULL);
|
||||||
}
|
}
|
||||||
|
@ -279,6 +281,7 @@ _ecore_evas_buffer_cb_mouse_down(void *data, Evas *e, Evas_Object *obj EINA_UNUS
|
||||||
|
|
||||||
ee = data;
|
ee = data;
|
||||||
ev = event_info;
|
ev = event_info;
|
||||||
|
if (!ee->evas) return;
|
||||||
_ecore_evas_buffer_transfer_modifiers_locks(e, ee->evas);
|
_ecore_evas_buffer_transfer_modifiers_locks(e, ee->evas);
|
||||||
evas_event_feed_mouse_down(ee->evas, ev->button, ev->flags, ev->timestamp, NULL);
|
evas_event_feed_mouse_down(ee->evas, ev->button, ev->flags, ev->timestamp, NULL);
|
||||||
}
|
}
|
||||||
|
@ -291,6 +294,7 @@ _ecore_evas_buffer_cb_mouse_up(void *data, Evas *e, Evas_Object *obj EINA_UNUSED
|
||||||
|
|
||||||
ee = data;
|
ee = data;
|
||||||
ev = event_info;
|
ev = event_info;
|
||||||
|
if (!ee->evas) return;
|
||||||
_ecore_evas_buffer_transfer_modifiers_locks(e, ee->evas);
|
_ecore_evas_buffer_transfer_modifiers_locks(e, ee->evas);
|
||||||
evas_event_feed_mouse_up(ee->evas, ev->button, ev->flags, ev->timestamp, NULL);
|
evas_event_feed_mouse_up(ee->evas, ev->button, ev->flags, ev->timestamp, NULL);
|
||||||
}
|
}
|
||||||
|
@ -306,6 +310,7 @@ _ecore_evas_buffer_cb_mouse_move(void *data, Evas *e, Evas_Object *obj EINA_UNUS
|
||||||
ev = event_info;
|
ev = event_info;
|
||||||
x = ev->cur.canvas.x;
|
x = ev->cur.canvas.x;
|
||||||
y = ev->cur.canvas.y;
|
y = ev->cur.canvas.y;
|
||||||
|
if (!ee->evas) return;
|
||||||
_ecore_evas_buffer_coord_translate(ee, &x, &y);
|
_ecore_evas_buffer_coord_translate(ee, &x, &y);
|
||||||
_ecore_evas_buffer_transfer_modifiers_locks(e, ee->evas);
|
_ecore_evas_buffer_transfer_modifiers_locks(e, ee->evas);
|
||||||
_ecore_evas_mouse_move_process(ee, x, y, ev->timestamp);
|
_ecore_evas_mouse_move_process(ee, x, y, ev->timestamp);
|
||||||
|
@ -319,6 +324,7 @@ _ecore_evas_buffer_cb_mouse_wheel(void *data, Evas *e, Evas_Object *obj EINA_UNU
|
||||||
|
|
||||||
ee = data;
|
ee = data;
|
||||||
ev = event_info;
|
ev = event_info;
|
||||||
|
if (!ee->evas) return;
|
||||||
_ecore_evas_buffer_transfer_modifiers_locks(e, ee->evas);
|
_ecore_evas_buffer_transfer_modifiers_locks(e, ee->evas);
|
||||||
evas_event_feed_mouse_wheel(ee->evas, ev->direction, ev->z, ev->timestamp, NULL);
|
evas_event_feed_mouse_wheel(ee->evas, ev->direction, ev->z, ev->timestamp, NULL);
|
||||||
}
|
}
|
||||||
|
@ -337,6 +343,7 @@ _ecore_evas_buffer_cb_multi_down(void *data, Evas *e, Evas_Object *obj EINA_UNUS
|
||||||
y = ev->canvas.y;
|
y = ev->canvas.y;
|
||||||
xx = x;
|
xx = x;
|
||||||
yy = y;
|
yy = y;
|
||||||
|
if (!ee->evas) return;
|
||||||
_ecore_evas_buffer_coord_translate(ee, &x, &y);
|
_ecore_evas_buffer_coord_translate(ee, &x, &y);
|
||||||
xf = (ev->canvas.xsub - (double)xx) + (double)x;
|
xf = (ev->canvas.xsub - (double)xx) + (double)x;
|
||||||
yf = (ev->canvas.ysub - (double)yy) + (double)y;
|
yf = (ev->canvas.ysub - (double)yy) + (double)y;
|
||||||
|
@ -358,6 +365,7 @@ _ecore_evas_buffer_cb_multi_up(void *data, Evas *e, Evas_Object *obj EINA_UNUSED
|
||||||
y = ev->canvas.y;
|
y = ev->canvas.y;
|
||||||
xx = x;
|
xx = x;
|
||||||
yy = y;
|
yy = y;
|
||||||
|
if (!ee->evas) return;
|
||||||
_ecore_evas_buffer_coord_translate(ee, &x, &y);
|
_ecore_evas_buffer_coord_translate(ee, &x, &y);
|
||||||
xf = (ev->canvas.xsub - (double)xx) + (double)x;
|
xf = (ev->canvas.xsub - (double)xx) + (double)x;
|
||||||
yf = (ev->canvas.ysub - (double)yy) + (double)y;
|
yf = (ev->canvas.ysub - (double)yy) + (double)y;
|
||||||
|
@ -379,6 +387,7 @@ _ecore_evas_buffer_cb_multi_move(void *data, Evas *e, Evas_Object *obj EINA_UNUS
|
||||||
y = ev->cur.canvas.y;
|
y = ev->cur.canvas.y;
|
||||||
xx = x;
|
xx = x;
|
||||||
yy = y;
|
yy = y;
|
||||||
|
if (!ee->evas) return;
|
||||||
_ecore_evas_buffer_coord_translate(ee, &x, &y);
|
_ecore_evas_buffer_coord_translate(ee, &x, &y);
|
||||||
xf = (ev->cur.canvas.xsub - (double)xx) + (double)x;
|
xf = (ev->cur.canvas.xsub - (double)xx) + (double)x;
|
||||||
yf = (ev->cur.canvas.ysub - (double)yy) + (double)y;
|
yf = (ev->cur.canvas.ysub - (double)yy) + (double)y;
|
||||||
|
@ -403,6 +412,7 @@ _ecore_evas_buffer_cb_key_down(void *data, Evas *e, Evas_Object *obj EINA_UNUSED
|
||||||
|
|
||||||
ee = data;
|
ee = data;
|
||||||
ev = event_info;
|
ev = event_info;
|
||||||
|
if (!ee->evas) return;
|
||||||
_ecore_evas_buffer_transfer_modifiers_locks(e, ee->evas);
|
_ecore_evas_buffer_transfer_modifiers_locks(e, ee->evas);
|
||||||
evas_event_feed_key_down(ee->evas, ev->keyname, ev->key, ev->string, ev->compose, ev->timestamp, NULL);
|
evas_event_feed_key_down(ee->evas, ev->keyname, ev->key, ev->string, ev->compose, ev->timestamp, NULL);
|
||||||
}
|
}
|
||||||
|
@ -415,6 +425,7 @@ _ecore_evas_buffer_cb_key_up(void *data, Evas *e, Evas_Object *obj EINA_UNUSED,
|
||||||
|
|
||||||
ee = data;
|
ee = data;
|
||||||
ev = event_info;
|
ev = event_info;
|
||||||
|
if (!ee->evas) return;
|
||||||
_ecore_evas_buffer_transfer_modifiers_locks(e, ee->evas);
|
_ecore_evas_buffer_transfer_modifiers_locks(e, ee->evas);
|
||||||
evas_event_feed_key_up(ee->evas, ev->keyname, ev->key, ev->string, ev->compose, ev->timestamp, NULL);
|
evas_event_feed_key_up(ee->evas, ev->keyname, ev->key, ev->string, ev->compose, ev->timestamp, NULL);
|
||||||
}
|
}
|
||||||
|
@ -425,6 +436,7 @@ _ecore_evas_buffer_cb_focus_in(void *data, Evas *e EINA_UNUSED, Evas_Object *obj
|
||||||
Ecore_Evas *ee;
|
Ecore_Evas *ee;
|
||||||
|
|
||||||
ee = data;
|
ee = data;
|
||||||
|
if (!ee->evas) return;
|
||||||
_ecore_evas_focus_device_set(ee, NULL, EINA_TRUE);
|
_ecore_evas_focus_device_set(ee, NULL, EINA_TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -434,6 +446,7 @@ _ecore_evas_buffer_cb_focus_out(void *data, Evas *e EINA_UNUSED, Evas_Object *ob
|
||||||
Ecore_Evas *ee;
|
Ecore_Evas *ee;
|
||||||
|
|
||||||
ee = data;
|
ee = data;
|
||||||
|
if (!ee->evas) return;
|
||||||
_ecore_evas_focus_device_set(ee, NULL, EINA_FALSE);
|
_ecore_evas_focus_device_set(ee, NULL, EINA_FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue