From 1a87463083fa9e343aa38b4c8824db0c92645b8e Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Thu, 15 Oct 2015 15:33:28 -0400 Subject: [PATCH] force a software render in all cases when finalizing x11 client iconify since ICCCM requires that clients be unmapped while iconified, it's necessary for the compositor to perform one last render prior to the unmap in order to ensure that mirror objects will still appear as expected. this render must use the pixmap buffer data in order to avoid timing issues due to async/deferred rendering, and it is only necessary for the case of clients rendering with a native surface fix T2788 --- src/bin/e_comp_object.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c index b542182..0e50926 100644 --- a/src/bin/e_comp_object.c +++ b/src/bin/e_comp_object.c @@ -2169,6 +2169,11 @@ _e_comp_smart_hide(Evas_Object *obj) evas_object_focus_set(cw->ec->frame, 0); e_comp_render_queue(); //force nocomp recheck e_comp_shape_queue(); + if ((!cw->ec->iconic) || (!e_pixmap_is_x(cw->ec->pixmap)) || (!cw->native)) return; + e_comp_object_native_surface_set(obj, 0); + e_comp_object_damage(obj, 0, 0, cw->w, cw->h); + e_comp_object_dirty(obj); + e_comp_object_render(obj); } static void -- 2.7.4