discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=5b119d437a32a2d5179a875de6f86a9b87ed31ca

commit 5b119d437a32a2d5179a875de6f86a9b87ed31ca
Author: Mike Blumenkrantz <zm...@osg.samsung.com>
Date:   Fri Apr 22 13:15:33 2016 -0400

    do not revert client focus except for normal and dialog windows
    
    fix T3432
---
 src/bin/e_client.c | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/src/bin/e_client.c b/src/bin/e_client.c
index 8bc5969..9d67f67 100644
--- a/src/bin/e_client.c
+++ b/src/bin/e_client.c
@@ -631,7 +631,9 @@ _e_client_del(E_Client *ec)
    if (ec->internal_elm_win)
      evas_object_hide(ec->internal_elm_win);
 
-   if (ec->focused)
+   if (ec->focused &&
+     ((!ec->netwm.type) || (ec->netwm.type == E_WINDOW_TYPE_DIALOG) ||
+     (ec->netwm.type == E_WINDOW_TYPE_NORMAL)))
      _e_client_revert_focus(ec);
    evas_object_focus_set(ec->frame, 0);
 
@@ -1399,7 +1401,9 @@ _e_client_cb_evas_hide(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj EINA_UN
 
    if (!ec->hidden)
      {
-        if (ec->focused)
+        if (ec->focused &&
+          ((!ec->netwm.type) || (ec->netwm.type == E_WINDOW_TYPE_DIALOG) ||
+          (ec->netwm.type == E_WINDOW_TYPE_NORMAL)))
           _e_client_revert_focus(ec);
      }
    ec->want_focus = ec->take_focus = 0;
@@ -4131,7 +4135,10 @@ e_client_iconify(E_Client *ec)
    e_client_comp_hidden_set(ec, 1);
    if (!ec->new_client)
      {
-        _e_client_revert_focus(ec);
+        if (ec->focused &&
+          ((!ec->netwm.type) || (ec->netwm.type == E_WINDOW_TYPE_DIALOG) ||
+          (ec->netwm.type == E_WINDOW_TYPE_NORMAL)))
+          _e_client_revert_focus(ec);
         evas_object_hide(ec->frame);
      }
    e_client_urgent_set(ec, ec->icccm.urgent);

-- 


Reply via email to