From 5b119d437a32a2d5179a875de6f86a9b87ed31ca Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Fri, 22 Apr 2016 13:15:33 -0400 Subject: [PATCH] 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 8bc59691b..9d67f67c2 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);