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);
|
if (cw->input_obj) evas_object_hide(cw->input_obj);
|
||||||
evas_object_hide(cw->effect_obj);
|
evas_object_hide(cw->effect_obj);
|
||||||
evas_object_hide(cw->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;
|
if (stopping) return;
|
||||||
/* ensure focus-out */
|
/* ensure focus-out */
|
||||||
if (cw->ec->focused)
|
if (cw->ec->focused)
|
||||||
|
|
|
@ -1356,7 +1356,7 @@ _e_comp_wl_surface_destroy(struct wl_resource *resource)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if ((!ec->internal) && (!e_comp_gl_get()))
|
if ((!ec->internal) && (!e_comp_gl_get()))
|
||||||
ec->hidden = 1;
|
ec->dead = ec->hidden = 1;
|
||||||
evas_object_hide(ec->frame);
|
evas_object_hide(ec->frame);
|
||||||
e_object_del(E_OBJECT(ec));
|
e_object_del(E_OBJECT(ec));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue