derekf pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=c0751ef3eb70cc571d40a314b4c049ac25627062
commit c0751ef3eb70cc571d40a314b4c049ac25627062 Author: Derek Foreman <[email protected]> Date: Thu Jul 6 15:35:16 2017 -0500 Make wayland clients render when only visible from mirrors Under some circumstances we can defer frame callbacks forever for clients that are only visible on desk mirrors. I'm not certain those circumstances should actually occur (Ref T5678) but at least for now this is a trivial and harmless workaround. Fix T5654 --- src/bin/e_comp_object.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c index 83349fc05..c09b91b93 100644 --- a/src/bin/e_comp_object.c +++ b/src/bin/e_comp_object.c @@ -927,6 +927,19 @@ _e_comp_object_mirror_pixels_get(void *data, Evas_Object *obj) return; } + /* This is a big fat hack - ideally we're already on this list + * if the parent is visible, but there are some circumstances + * where a client receives damage while visible but its own pixels_get + * callback doesn't fire (new damage during the start frame of a desk + * switch animation). + * Thus we can't make this addition conditional on visibility or we can + * (under wayland at least) lose a frame callback and stop updating. + * + * e_comp_client_post_update_add() prevents clients from being + * on the list twice, so this is theoretically not harmful. + */ + e_comp_client_post_update_add(ec); + if (cw->native) return; evas_object_image_data_set(obj, e_pixmap_image_data_get(cw->ec->pixmap)); --
