Fix wayland clients not deleting when they're hidden

We kept an extra reference for wayland clients and dropped it on their final
render to stop crashes.  However, if they're not on screen at the time of
their deletion this reference still needed to be dropped.

Fixes clients remaining on the deskmirror after dying on another desktop.
This commit is contained in:
Derek Foreman 2016-07-21 13:09:12 -05:00 committed by Mike Blumenkrantz
parent 70c8fa7ae1
commit 18cef43716
1 changed files with 7 additions and 0 deletions

View File

@ -2471,6 +2471,13 @@ _e_comp_wl_client_cb_del(void *data EINA_UNUSED, E_Client *ec)
if (ec->internal_elm_win)
evas_object_hide(ec->frame);
/* WL clients take an extra ref at startup so they don't get deleted while
* visible. Since we drop that in the render loop we need to make sure
* it's dropped here if the client isn't going to be rendered.
*/
if (!e_pixmap_is_x(ec->pixmap) && ec->hidden) e_object_unref(E_OBJECT(ec));
_e_comp_wl_focus_check();
}