forked from enlightenment/enlightenment
flag non-internal wl shm clients as dead and delete mirrors on hide
no more crashing?
This commit is contained in:
parent
6696c99a26
commit
b9f797a277
|
@ -1947,6 +1947,18 @@ _e_comp_smart_hide(Evas_Object *obj)
|
|||
if (cw->input_obj) evas_object_hide(cw->input_obj);
|
||||
evas_object_hide(cw->effect_obj);
|
||||
evas_object_hide(cw->obj);
|
||||
if (cw->ec->dead && cw->obj_mirror)
|
||||
{
|
||||
Evas_Object *o;
|
||||
|
||||
EINA_LIST_FREE(cw->obj_mirror, o)
|
||||
{
|
||||
evas_object_image_data_set(o, NULL);
|
||||
evas_object_freeze_events_set(o, 1);
|
||||
evas_object_event_callback_del_full(o, EVAS_CALLBACK_DEL, _e_comp_object_cb_mirror_del, cw);
|
||||
evas_object_del(o);
|
||||
}
|
||||
}
|
||||
if (stopping) return;
|
||||
/* ensure focus-out */
|
||||
if (cw->ec->focused)
|
||||
|
|
|
@ -1356,7 +1356,7 @@ _e_comp_wl_surface_destroy(struct wl_resource *resource)
|
|||
return;
|
||||
|
||||
if ((!ec->internal) && (!e_comp_gl_get()))
|
||||
ec->hidden = 1;
|
||||
ec->dead = ec->hidden = 1;
|
||||
evas_object_hide(ec->frame);
|
||||
e_object_del(E_OBJECT(ec));
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue