KWin controls showing/hiding of topmenus, block requests for it.
svn path=/trunk/kdebase/kwin/; revision=266171
This commit is contained in:
parent
f8886f4f01
commit
d369e69db0
1 changed files with 10 additions and 4 deletions
14
events.cpp
14
events.cpp
|
@ -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;
|
||||||
|
|
Loading…
Reference in a new issue