dont give focus to transients when the situation is ambiguous
This commit is contained in:
parent
33d48c5271
commit
f9cf8fcea8
1 changed files with 15 additions and 1 deletions
|
@ -486,10 +486,24 @@ void client_manage(Window window)
|
||||||
"Not focusing the window because the time is "
|
"Not focusing the window because the time is "
|
||||||
"too old\n");
|
"too old\n");
|
||||||
}
|
}
|
||||||
|
/* If its a transient (and parents aren't focused) and the time
|
||||||
|
is ambiguous (either the current focus target doesn't have
|
||||||
|
a timestamp, or they are the same (we probably inherited it
|
||||||
|
from them) */
|
||||||
|
else if (self->transient_for != NULL &&
|
||||||
|
(!last_time || self->user_time == last_time))
|
||||||
|
{
|
||||||
|
activate = FALSE;
|
||||||
|
ob_debug_type(OB_DEBUG_FOCUS,
|
||||||
|
"Not focusing the window because it is a "
|
||||||
|
"transient, and the time is very ambiguous\n");
|
||||||
|
}
|
||||||
/* Don't steal focus from globally active clients.
|
/* Don't steal focus from globally active clients.
|
||||||
I stole this idea from KWin. It seems nice.
|
I stole this idea from KWin. It seems nice.
|
||||||
*/
|
*/
|
||||||
if (!(focus_client->can_focus || focus_client->focus_notify)) {
|
else if (!(focus_client->can_focus ||
|
||||||
|
focus_client->focus_notify))
|
||||||
|
{
|
||||||
activate = FALSE;
|
activate = FALSE;
|
||||||
ob_debug_type(OB_DEBUG_FOCUS,
|
ob_debug_type(OB_DEBUG_FOCUS,
|
||||||
"Not focusing the window because a globally "
|
"Not focusing the window because a globally "
|
||||||
|
|
Loading…
Reference in a new issue