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);