small fix for mac menu when using focus follows mouse (even though this

combination does not make sense at all)

svn path=/trunk/kdebase/kwin/; revision=68919
icc-effect-5.14.5
Matthias Ettrich 2000-10-26 08:26:05 +00:00
parent 1b3e517fa8
commit 2d59aac1c8
2 changed files with 5 additions and 3 deletions

View File

@ -77,7 +77,7 @@ public:
m_client->maximize( Client::MaximizeRestore ); m_client->maximize( Client::MaximizeRestore );
} }
if ( state & NET::StaysOnTop ) { if ( ( mask & NET::StaysOnTop) != 0 && (state & NET::StaysOnTop) != 0 ) {
m_client->setStaysOnTop( state & NET::StaysOnTop ); m_client->setStaysOnTop( state & NET::StaysOnTop );
m_client->workspace()->raiseClient( m_client ); m_client->workspace()->raiseClient( m_client );
} }
@ -1049,6 +1049,8 @@ bool Client::configureRequest( XConfigureRequestEvent& e )
switch (stack_mode){ switch (stack_mode){
case Above: case Above:
case TopIf: case TopIf:
if ( isMenu() && mainClient() != this )
break; // in this case, we already do the raise
workspace()->raiseClient( this ); workspace()->raiseClient( this );
break; break;
case Below: case Below:

View File

@ -955,7 +955,7 @@ void Workspace::setActiveClient( Client* c )
if ( menubar ) { if ( menubar ) {
menubar->show(); menubar->show();
raiseClient( menubar ); menubar->raise(); // better for FocusFollowsMouse than raiseClient(menubar)
} }
// ... then hide the other ones. Avoids flickers. // ... then hide the other ones. Avoids flickers.
@ -1002,7 +1002,7 @@ void Workspace::iconifyOrDeiconifyTransientsOf( Client* c )
for ( ClientList::ConstIterator it = clients.begin(); it != clients.end(); ++it) { for ( ClientList::ConstIterator it = clients.begin(); it != clients.end(); ++it) {
if ( (*it)->transientFor() == c->window() if ( (*it)->transientFor() == c->window()
&& !(*it)->isIconified() && !(*it)->isIconified()
&& !(*it)->isShade() && !(*it)->isShade()
&& ( !exclude_menu || !(*it)->isMenu() ) ) { && ( !exclude_menu || !(*it)->isMenu() ) ) {
(*it)->setMappingState( XIconicState ); (*it)->setMappingState( XIconicState );
(*it)->hide(); (*it)->hide();