fix auto raise once again

svn path=/trunk/kdebase/kwin/; revision=68000
icc-effect-5.14.5
Matthias Ettrich 2000-10-16 12:00:22 +00:00
parent 1266db9901
commit 3c8525c963
1 changed files with 6 additions and 5 deletions

View File

@ -1837,7 +1837,8 @@ bool Client::x11Event( XEvent * e)
if ( options->focusPolicy == Options::ClickToFocus ) if ( options->focusPolicy == Options::ClickToFocus )
return TRUE; return TRUE;
if ( options->autoRaise && !isDesktop() && !isDock() && !isMenu() && workspace()->focusChangeEnabled() ) { if ( options->autoRaise && !isDesktop() && !isDock() && !isMenu() && workspace()->focusChangeEnabled()
&& workspace()->topClientOnDesktop() != this ) {
delete autoRaiseTimer; delete autoRaiseTimer;
autoRaiseTimer = new QTimer( this ); autoRaiseTimer = new QTimer( this );
connect( autoRaiseTimer, SIGNAL( timeout() ), this, SLOT( autoRaise() ) ); connect( autoRaiseTimer, SIGNAL( timeout() ), this, SLOT( autoRaise() ) );
@ -2684,7 +2685,7 @@ void Client::autoRaise()
autoRaiseTimer = 0; autoRaiseTimer = 0;
} }
/*! /*!
Clones settings from other client. Used in Clones settings from other client. Used in
Workspace::slotResetAllClients() Workspace::slotResetAllClients()
*/ */
@ -2703,7 +2704,7 @@ NETWinInfo * Client::netWinInfo()
return static_cast<NETWinInfo *>(info); return static_cast<NETWinInfo *>(info);
} }
/*! /*!
The transient_for window may be embedded in another application, The transient_for window may be embedded in another application,
so kwin cannot see it. Try to find the managed client for the so kwin cannot see it. Try to find the managed client for the
window and fix the transient_for property if possible. window and fix the transient_for property if possible.
@ -2715,8 +2716,8 @@ void Client::verifyTransientFor()
if ( transient_for == 0 || transient_for == win ) if ( transient_for == 0 || transient_for == win )
return; return;
WId old_transient_for = transient_for; WId old_transient_for = transient_for;
while ( transient_for && while ( transient_for &&
transient_for != workspace()->rootWin() && transient_for != workspace()->rootWin() &&
!workspace()->findClient( transient_for ) ) { !workspace()->findClient( transient_for ) ) {
wins = 0; wins = 0;
int r = XQueryTree(qt_xdisplay(), transient_for, &root_return, &parent_return, &wins, &nwins); int r = XQueryTree(qt_xdisplay(), transient_for, &root_return, &parent_return, &wins, &nwins);