Allow minimizing of modal dialogs, simply meaning that their main window
will be minimized too. Also don't disable the minimize animation for the dialog. (bnc#431378) svn path=/trunk/KDE/kdebase/workspace/; revision=908237icc-effect-5.14.5
parent
7102a6d895
commit
edcd0112fa
|
@ -636,11 +636,15 @@ bool Client::isMinimizable() const
|
||||||
if( !shown_mainwindow )
|
if( !shown_mainwindow )
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
#if 0
|
||||||
// This is here because kicker's taskbar doesn't provide separate entries
|
// This is here because kicker's taskbar doesn't provide separate entries
|
||||||
// for windows with an explicitly given parent
|
// for windows with an explicitly given parent
|
||||||
// TODO: perhaps this should be redone
|
// TODO: perhaps this should be redone
|
||||||
|
// Disabled for now, since at least modal dialogs should be minimizable
|
||||||
|
// (resulting in the mainwindow being minimized too).
|
||||||
if( transientFor() != NULL )
|
if( transientFor() != NULL )
|
||||||
return false;
|
return false;
|
||||||
|
#endif
|
||||||
if( !wantsTabFocus() ) // SELI, TODO: - NET::Utility? why wantsTabFocus() - skiptaskbar? ?
|
if( !wantsTabFocus() ) // SELI, TODO: - NET::Utility? why wantsTabFocus() - skiptaskbar? ?
|
||||||
return false;
|
return false;
|
||||||
return true;
|
return true;
|
||||||
|
|
14
group.cpp
14
group.cpp
|
@ -387,10 +387,15 @@ void Workspace::updateMinimizedOfTransients( Client* c )
|
||||||
if( !(*it)->isMinimized()
|
if( !(*it)->isMinimized()
|
||||||
&& !(*it)->isTopMenu() ) // topmenus are not minimized, they're hidden
|
&& !(*it)->isTopMenu() ) // topmenus are not minimized, they're hidden
|
||||||
{
|
{
|
||||||
(*it)->minimize( true ); // avoid animation
|
(*it)->minimize();
|
||||||
updateMinimizedOfTransients( (*it) );
|
updateMinimizedOfTransients( (*it) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if( c->isModal()) // if a modal dialog is minimized, minimize its mainwindow too
|
||||||
|
{
|
||||||
|
foreach( Client* c2, c->mainClients())
|
||||||
|
c2->minimize();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ // else unmiminize the transients
|
{ // else unmiminize the transients
|
||||||
|
@ -401,10 +406,15 @@ void Workspace::updateMinimizedOfTransients( Client* c )
|
||||||
if( (*it)->isMinimized()
|
if( (*it)->isMinimized()
|
||||||
&& !(*it)->isTopMenu())
|
&& !(*it)->isTopMenu())
|
||||||
{
|
{
|
||||||
(*it)->unminimize( true ); // avoid animation
|
(*it)->unminimize();
|
||||||
updateMinimizedOfTransients( (*it) );
|
updateMinimizedOfTransients( (*it) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if( c->isModal())
|
||||||
|
{
|
||||||
|
foreach( Client* c2, c->mainClients())
|
||||||
|
c2->unminimize();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue