floating: allow to move geometry while floating mode set 28/144728/2
authorJuyeon Lee <juyeonne.lee@samsung.com>
Thu, 17 Aug 2017 14:27:11 +0000 (23:27 +0900)
committerGwanglim Lee <gl77.lee@samsung.com>
Fri, 18 Aug 2017 01:35:11 +0000 (01:35 +0000)
Change-Id: I5294d278affbd58e2b71b6eb21577b2537fa477d

src/bin/e_client.c
src/bin/e_policy_wl.c

index f75747faef315673097bac991456f794c3cc5327..e1b942a0bd4169cb10c219f2e4cf3144dd5841ab 100644 (file)
@@ -5197,7 +5197,13 @@ e_client_unmaximize(E_Client *ec, E_Maximize max)
                   if (ec->layout.splited)
                     e_client_util_move_resize_without_frame(ec, x, y, w, h);
                   else
-                    e_policy_visibility_client_defer_move(ec, x, y);
+                    {
+                       if (ec->changes.pos)
+                         {
+                            x = ec->x; y = ec->y;
+                         }
+                       e_policy_visibility_client_defer_move(ec, x, y);
+                    }
                   e_hints_window_size_unset(ec);
                }
              else
@@ -5207,7 +5213,14 @@ e_client_unmaximize(E_Client *ec, E_Maximize max)
                   if (ec->layout.splited)
                     e_client_util_move_resize_without_frame(ec, x, y, w, h);
                   else
-                    e_policy_visibility_client_defer_move(ec, x, y);
+                     {
+                        if (ec->changes.pos)
+                          {
+                             x = ec->x; y = ec->y;
+                          }
+                        e_policy_visibility_client_defer_move(ec, x, y);
+                     }
+
                   e_hints_window_size_set(ec);
                }
              if (vert)
index d1e2845d50b8c75042e2072a8f4382fafee5d8f5..6ab936d5df4458ff9effd8b5922a7e73b4ca9a1a 100644 (file)
@@ -2714,6 +2714,7 @@ _e_policy_wl_floating_mode_apply(E_Client *ec, Eina_Bool floating)
    if (ec->floating == floating) return;
 
    ec->floating = floating;
+   ec->lock_client_location = EINA_FALSE;
 
    if (ec->frame)
      {