e_client/e_zone: check saved size before calling defer move in unmaximize 18/299218/1
authorDoyoun Kang <doyoun.kang@samsung.com>
Thu, 21 Sep 2023 10:42:59 +0000 (19:42 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Fri, 22 Sep 2023 00:51:16 +0000 (09:51 +0900)
Change-Id: Ibf6dcebf2e0e4079af664392925d166fbc8d3cbe

src/bin/e_client.c
src/bin/e_zone.c

index 2137987..10f4097 100644 (file)
@@ -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;
index 7a76d2e..97ce7c2 100644 (file)
@@ -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;