From 4f77573e6c16a462fa3bca493bd5a85143e6312f Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Fri, 30 Jun 2017 10:25:23 -0400 Subject: [PATCH] perform move after resize during comp object show in the case where an object is being shown before it has been moved or resized, a move operation will trigger a series of callbacks which force the compositor to attempt an illegal operation (recursive show before resize) fix T5521 --- src/bin/e_comp_object.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c index c02069b28..0874236db 100644 --- a/src/bin/e_comp_object.c +++ b/src/bin/e_comp_object.c @@ -1718,9 +1718,6 @@ _e_comp_intercept_show_helper(E_Comp_Object *cw) evas_object_show(cw->smart_obj); return; } - /* re-set geometry */ - if (cw->ec->placed) - evas_object_move(cw->smart_obj, cw->ec->x, cw->ec->y); /* ensure that some kind of frame calc has occurred if there's a frame */ if (e_pixmap_is_x(cw->ec->pixmap) && cw->frame_object && (cw->ec->h == cw->ec->client.h) && (cw->ec->w == cw->ec->client.w)) @@ -1734,6 +1731,10 @@ _e_comp_intercept_show_helper(E_Comp_Object *cw) EC_CHANGED(cw->ec); return; } + /* re-set geometry */ + if (cw->ec->placed) + evas_object_move(cw->smart_obj, cw->ec->x, cw->ec->y); + /* if pixmap not available, clear pixmap since we're going to fetch it again */ if (!e_pixmap_size_get(cw->ec->pixmap, &w, &h)) e_pixmap_clear(cw->ec->pixmap);