some focus problem
svn path=/trunk/kdebase/kwin/; revision=55761
This commit is contained in:
parent
ad1f6da5a2
commit
b26fb71535
1 changed files with 18 additions and 20 deletions
|
@ -1032,26 +1032,24 @@ void Workspace::requestFocus( Client* c)
|
||||||
*/
|
*/
|
||||||
void Workspace::clientHidden( Client* c )
|
void Workspace::clientHidden( Client* c )
|
||||||
{
|
{
|
||||||
if ( c == active_client || ( !active_client && c == should_get_focus ) )
|
if ( c != active_client && ( active_client || c != should_get_focus ) )
|
||||||
{
|
return;
|
||||||
|
|
||||||
active_client = 0;
|
active_client = 0;
|
||||||
should_get_focus = 0;
|
should_get_focus = 0;
|
||||||
if (!block_focus &&
|
if (!block_focus &&
|
||||||
options->focusPolicyIsReasonable() &&
|
options->focusPolicyIsReasonable() &&
|
||||||
!focus_chain.isEmpty()
|
!focus_chain.isEmpty()
|
||||||
)
|
) {
|
||||||
{
|
|
||||||
for (ClientList::ConstIterator it = focus_chain.fromLast();
|
for (ClientList::ConstIterator it = focus_chain.fromLast();
|
||||||
it != focus_chain.end();
|
it != focus_chain.end();
|
||||||
--it)
|
--it) {
|
||||||
{
|
|
||||||
if ((*it)->isVisible()) {
|
if ((*it)->isVisible()) {
|
||||||
requestFocus(*it);
|
requestFocus(*it);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if ( desktop_client )
|
if ( desktop_client )
|
||||||
requestFocus( desktop_client );
|
requestFocus( desktop_client );
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in a new issue