From 20e30a7bfc46490e285615b3970d574978d6e0bd Mon Sep 17 00:00:00 2001 From: Juyeon Lee Date: Thu, 17 Aug 2017 23:27:11 +0900 Subject: [PATCH] floating: allow to move geometry while floating mode set Change-Id: I5294d278affbd58e2b71b6eb21577b2537fa477d --- src/bin/e_client.c | 17 +++++++++++++++-- src/bin/e_policy_wl.c | 1 + 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/bin/e_client.c b/src/bin/e_client.c index f75747f..e1b942a 100644 --- a/src/bin/e_client.c +++ b/src/bin/e_client.c @@ -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) diff --git a/src/bin/e_policy_wl.c b/src/bin/e_policy_wl.c index d1e2845..6ab936d 100644 --- a/src/bin/e_policy_wl.c +++ b/src/bin/e_policy_wl.c @@ -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) { -- 2.7.4