be smarter with shaded windows: when shading, iconify any non-shaded
transients. svn path=/trunk/kdebase/kwin/; revision=35354
This commit is contained in:
parent
bd1e4878ba
commit
070b0971cc
2 changed files with 8 additions and 2 deletions
|
@ -1137,6 +1137,8 @@ int Client::maximumHeight() const
|
|||
|
||||
void Client::iconify()
|
||||
{
|
||||
if ( isShade() )
|
||||
setShade( FALSE );
|
||||
if ( workspace()->iconifyMeansWithdraw( this ) ) {
|
||||
setMappingState( WithdrawnState );
|
||||
hide();
|
||||
|
@ -1431,6 +1433,8 @@ void Client::setShade( bool s )
|
|||
if ( isActive() )
|
||||
workspace()->requestFocus( this );
|
||||
}
|
||||
|
||||
workspace()->iconifyOrDeiconifyTransientsOf( this );
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -754,9 +754,11 @@ void Workspace::activateClient( Client* c)
|
|||
|
||||
void Workspace::iconifyOrDeiconifyTransientsOf( Client* c )
|
||||
{
|
||||
if ( c->isIconified() ) {
|
||||
if ( c->isIconified() || c->isShade() ) {
|
||||
for ( ClientList::ConstIterator it = clients.begin(); it != clients.end(); ++it) {
|
||||
if ( (*it)->transientFor() == c->window() && !(*it)->isIconified() ) {
|
||||
if ( (*it)->transientFor() == c->window()
|
||||
&& !(*it)->isIconified()
|
||||
&& !(*it)->isShade() ) {
|
||||
(*it)->setMappingState( IconicState );
|
||||
(*it)->hide();
|
||||
iconifyOrDeiconifyTransientsOf( (*it) );
|
||||
|
|
Loading…
Reference in a new issue