do not revert client focus except for normal and dialog windows

fix T3432
This commit is contained in:
Mike Blumenkrantz 2016-04-22 13:15:33 -04:00
parent 5c0729221e
commit 5b119d437a
1 changed files with 10 additions and 3 deletions

View File

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