reset initial internal wl client states when hiding (but not deleting)

ensure that these windows are not able to be shown again until commits occur
This commit is contained in:
Mike Blumenkrantz 2016-11-08 12:44:11 -05:00
parent 51772d1596
commit 1c4b11ef9f
1 changed files with 15 additions and 3 deletions

View File

@ -959,7 +959,13 @@ _e_comp_wl_evas_cb_kill_request(void *data, Evas_Object *obj EINA_UNUSED, void *
evas_object_pass_events_set(ec->frame, EINA_TRUE);
if (ec->visible) evas_object_hide(ec->frame);
if (!ec->internal) e_object_del(E_OBJECT(ec));
if (ec->internal)
{
ec->ignored = 1;
if (!e_object_is_del(E_OBJECT(ec)))
ec->comp_data->mapped = EINA_FALSE;
}
else e_object_del(E_OBJECT(ec));
_e_comp_wl_focus_check();
}
@ -1759,8 +1765,14 @@ _e_comp_wl_surface_destroy(struct wl_resource *resource)
if (!(ec = wl_resource_get_user_data(resource))) return;
e_pixmap_alias(ec->pixmap, E_PIXMAP_TYPE_WL, wl_resource_get_id(resource));
if (!ec->internal) e_object_del(E_OBJECT(ec));
if (ec->internal)
{
e_pixmap_alias(ec->pixmap, E_PIXMAP_TYPE_WL, wl_resource_get_id(resource));
ec->ignored = 1;
if (!e_object_is_del(E_OBJECT(ec)))
ec->comp_data->mapped = EINA_FALSE;
}
else e_object_del(E_OBJECT(ec));
evas_object_hide(ec->frame);
}