raster pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=418319fc942a2c9204c8ec1d3d9e9bb1bbfb83fa

commit 418319fc942a2c9204c8ec1d3d9e9bb1bbfb83fa
Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com>
Date:   Wed Aug 30 16:13:50 2017 +0900

    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)

-- 


Reply via email to