From: Doyoun Kang Date: Thu, 21 Sep 2023 10:42:59 +0000 (+0900) Subject: e_client/e_zone: check saved size before calling defer move in unmaximize X-Git-Tag: accepted/tizen/8.0/unified/20231005.094823~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=3cb6489e52a7638a25cadfa024e9119f65c0db89;p=platform%2Fupstream%2Fenlightenment.git e_client/e_zone: check saved size before calling defer move in unmaximize Change-Id: Ibf6dcebf2e0e4079af664392925d166fbc8d3cbe --- diff --git a/src/bin/e_client.c b/src/bin/e_client.c index 2137987..10f4097 100644 --- a/src/bin/e_client.c +++ b/src/bin/e_client.c @@ -5856,14 +5856,26 @@ e_client_unmaximize(E_Client *ec, E_Maximize max) evas_object_smart_callback_call(ec->frame, "unmaximize", NULL); e_client_resize_limit(ec, &w, &h); e_client_pos_set(ec, x, y); - e_policy_visibility_client_defer_move(ec); + if ((ec->saved.w != 0) && (ec->saved.h != 0)) + { + if ((w != ec->saved.w) || (h != ec->saved.h)) + { + e_policy_visibility_client_defer_move(ec); + } + } } else { evas_object_smart_callback_call(ec->frame, "unmaximize", NULL); e_client_resize_limit(ec, &w, &h); e_client_pos_set(ec, x, y); - e_policy_visibility_client_defer_move(ec); + if ((ec->saved.w != 0) && (ec->saved.h != 0)) + { + if ((w != ec->saved.w) || (h != ec->saved.h)) + { + e_policy_visibility_client_defer_move(ec); + } + } } if (vert) ec->saved.h = ec->saved.y = 0; diff --git a/src/bin/e_zone.c b/src/bin/e_zone.c index 7a76d2e..97ce7c2 100644 --- a/src/bin/e_zone.c +++ b/src/bin/e_zone.c @@ -961,14 +961,26 @@ _e_zone_cb_hook_client_unmaximize(void *d, E_Client *ec) evas_object_smart_callback_call(ec->frame, "unmaximize", NULL); e_client_resize_limit(ec, &w, &h); e_client_pos_set(ec, x, y); - e_policy_visibility_client_defer_move(ec); + if ((ec->saved.w != 0) && (ec->saved.h != 0)) + { + if ((w != ec->saved.w) || (h != ec->saved.h)) + { + e_policy_visibility_client_defer_move(ec); + } + } } else { evas_object_smart_callback_call(ec->frame, "unmaximize", NULL); e_client_resize_limit(ec, &w, &h); e_client_pos_set(ec, x, y); - e_policy_visibility_client_defer_move(ec); + if ((ec->saved.w != 0) && (ec->saved.h != 0)) + { + if ((w != ec->saved.w) || (h != ec->saved.h)) + { + e_policy_visibility_client_defer_move(ec); + } + } } if (vert) ec->saved.h = ec->saved.y = 0;