From d70667a0678b97ea74733b15017596085dc36330 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Fri, 21 Aug 2015 13:10:06 -0400 Subject: [PATCH] don't watch dirty smart cb for desmirror clients with unusable pixmaps this seems to fix an extremely rare issue related to both deskmirror artifacts and crashes in deskmirror during restart; I was only able to reproduce the crash twice in the span of over an hour of testing and it seemed to disappear after this change --- src/bin/e_deskmirror.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/e_deskmirror.c b/src/bin/e_deskmirror.c index fee6f306c..85d130f43 100644 --- a/src/bin/e_deskmirror.c +++ b/src/bin/e_deskmirror.c @@ -662,7 +662,7 @@ _e_deskmirror_mirror_add(E_Smart_Data *sd, Evas_Object *obj) evas_object_event_callback_add(obj, EVAS_CALLBACK_RESIZE, (Evas_Object_Event_Cb)_comp_object_configure, m); evas_object_event_callback_add(obj, EVAS_CALLBACK_MOVE, (Evas_Object_Event_Cb)_comp_object_configure, m); evas_object_smart_callback_add(obj, "frame_recalc_done", _e_deskmirror_mirror_frame_recalc_cb, m); - if ((!ec->redirected) && (!ec->new_client)) + if ((!ec->redirected) && (!ec->new_client) && e_pixmap_usable_get(ec->pixmap)) evas_object_smart_callback_add(obj, "dirty", _comp_object_dirty, m); sd->mirrors = eina_inlist_append(sd->mirrors, EINA_INLIST_GET(m)); eina_hash_add(sd->mirror_hash, &obj, m);