From 418319fc942a2c9204c8ec1d3d9e9bb1bbfb83fa Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Wed, 30 Aug 2017 16:13:50 +0900 Subject: [PATCH] e client focus - fix focus if moving focused window to new desk if the window being moved to a new desktop is focused, then ensure after the move to restore focus to the last focused in the focus stack for this desk to something stays focused. @fix --- src/bin/e_client.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/bin/e_client.c b/src/bin/e_client.c index d3dc6bdef..414220422 100644 --- a/src/bin/e_client.c +++ b/src/bin/e_client.c @@ -2805,6 +2805,7 @@ e_client_desk_set(E_Client *ec, E_Desk *desk) { E_Event_Client_Desk_Set *ev; E_Desk *old_desk; + Eina_Bool was_focused = ec->focused; E_OBJECT_CHECK(ec); E_OBJECT_TYPE_CHECK(ec, E_CLIENT_TYPE); @@ -2872,6 +2873,11 @@ e_client_desk_set(E_Client *ec, E_Desk *desk) e_client_res_change_geometry_restore(ec); ec->pre_res_change.valid = 0; } + if (was_focused) + { + E_Client *ec_focus = e_desk_last_focused_focus(old_desk); + if (ec_focus) e_client_focus_set_with_pointer(ec_focus); + } } if (ec->stack.prev || ec->stack.next)