force-disable refocus during desk flip on client activation

this prevents an infinite focus loop where focus will be constantly
reapplied between multiple windows if the activated window is not the
refocus window
This commit is contained in:
Mike Blumenkrantz 2015-09-08 16:55:21 -04:00
parent c2b9008f11
commit 579b5dcb76
1 changed files with 9 additions and 1 deletions

View File

@ -3566,7 +3566,15 @@ e_client_activate(E_Client *ec, Eina_Bool just_do_it)
e_client_uniconify(ec);
}
if ((!ec->iconic) && (!ec->sticky))
e_desk_show(ec->desk);
{
int val = e_config->focus_last_focused_per_desktop;
/* prevent infinite focus loops during refocus */
if (!ec->lock_focus_out)
e_config->focus_last_focused_per_desktop = 0;
e_desk_show(ec->desk);
e_config->focus_last_focused_per_desktop = val;
}
if (!ec->lock_user_stacking)
evas_object_raise(ec->frame);
if (!ec->lock_focus_out)