I think I've finally found the right place for the propagateClients() call.
Now KWinModule will emit windowAdded() after all properties are set correctly, but still before activeWindowChanged(). If it breaks something, beat me. svn path=/trunk/kdebase/kwin/; revision=90016
This commit is contained in:
parent
2b0e89325f
commit
6261311a69
3 changed files with 11 additions and 1 deletions
|
@ -756,6 +756,7 @@ bool Client::manage( bool isMapped, bool doNotShow, bool isInitial )
|
|||
delete session;
|
||||
|
||||
sendSyntheticConfigureNotify();
|
||||
workspace()->clientReady( this ); // will call Workspace::propagateClients()
|
||||
|
||||
if ( showMe && !doNotShow ) {
|
||||
Events::raise( isTransient() ? Events::TransNew : Events::New );
|
||||
|
|
|
@ -495,7 +495,6 @@ bool Workspace::workspaceEvent( XEvent * e )
|
|||
}
|
||||
}
|
||||
if ( c ) {
|
||||
propagateClients();
|
||||
bool result = c->windowEvent( e );
|
||||
if ( c == desktop_client )
|
||||
setDesktopClient( c );
|
||||
|
@ -2173,6 +2172,14 @@ bool Workspace::netCheck( XEvent* e )
|
|||
return dirty != 0;
|
||||
}
|
||||
|
||||
/*!
|
||||
Called when a newly mapped client is ready ( has properties set correctly )
|
||||
*/
|
||||
void Workspace::clientReady( Client* )
|
||||
{
|
||||
propagateClients();
|
||||
}
|
||||
|
||||
/*!
|
||||
Propagates the managed clients to the world
|
||||
*/
|
||||
|
|
|
@ -133,6 +133,8 @@ public:
|
|||
void raiseOrLowerClient( Client * );
|
||||
|
||||
void clientHidden( Client* );
|
||||
|
||||
void clientReady( Client* );
|
||||
|
||||
/**
|
||||
* Returns the current virtual desktop of this workspace
|
||||
|
|
Loading…
Reference in a new issue