KWin controls showing/hiding of topmenus, block requests for it.

svn path=/trunk/kdebase/kwin/; revision=266171
This commit is contained in:
Luboš Luňák 2003-11-10 18:50:38 +00:00
parent f8886f4f01
commit d369e69db0

View file

@ -581,6 +581,8 @@ void Client::mapRequestEvent( XMapRequestEvent* e )
{ {
if( e->window != window()) if( e->window != window())
return; // no messing with frame etc. return; // no messing with frame etc.
if( isTopMenu() && workspace()->managingTopMenus())
return; // kwin controls these
switch ( mappingState() ) switch ( mappingState() )
{ {
case WithdrawnState: case WithdrawnState:
@ -633,10 +635,10 @@ void Client::unmapNotifyEvent( XUnmapEvent* e )
XEvent ev; XEvent ev;
if( XCheckTypedWindowEvent (qt_xdisplay(), window(), if( XCheckTypedWindowEvent (qt_xdisplay(), window(),
DestroyNotify, &ev) ) // TODO I don't like this much DestroyNotify, &ev) ) // TODO I don't like this much
{ {
destroyClient(); // deletes this destroyClient(); // deletes this
return; return;
} }
releaseWindow(); releaseWindow();
break; break;
default: default:
@ -664,6 +666,8 @@ void Client::clientMessageEvent( XClientMessageEvent* e )
// WM_STATE // WM_STATE
if ( e->message_type == atoms->kde_wm_change_state ) if ( e->message_type == atoms->kde_wm_change_state )
{ {
if( isTopMenu() && workspace()->managingTopMenus())
return; // kwin controls these
if( e->data.l[ 1 ] ) if( e->data.l[ 1 ] )
blockAnimation = true; blockAnimation = true;
if( e->data.l[ 0 ] == IconicState ) if( e->data.l[ 0 ] == IconicState )
@ -686,6 +690,8 @@ void Client::clientMessageEvent( XClientMessageEvent* e )
} }
else if ( e->message_type == atoms->wm_change_state) else if ( e->message_type == atoms->wm_change_state)
{ {
if( isTopMenu() && workspace()->managingTopMenus())
return; // kwin controls these
if ( e->data.l[0] == IconicState ) if ( e->data.l[0] == IconicState )
minimize(); minimize();
return; return;