Make a difference between fake session data ('save window settings')
and real SM session data. svn path=/trunk/kdebase/kwin/; revision=256749
This commit is contained in:
parent
43ff6ea638
commit
ee848958b3
3 changed files with 6 additions and 2 deletions
|
@ -446,7 +446,7 @@ bool Client::manage( Window w, bool isMapped )
|
||||||
{
|
{
|
||||||
workspace()->restackClientUnderActive( this );
|
workspace()->restackClientUnderActive( this );
|
||||||
rawShow();
|
rawShow();
|
||||||
if( !session && ( !isSpecialWindow() || isOverride()))
|
if( ( !session || session->fake ) && ( !isSpecialWindow() || isOverride()))
|
||||||
demandAttention();
|
demandAttention();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -455,7 +455,7 @@ bool Client::manage( Window w, bool isMapped )
|
||||||
{
|
{
|
||||||
virtualDesktopChange();
|
virtualDesktopChange();
|
||||||
workspace()->raiseClient( this );
|
workspace()->raiseClient( this );
|
||||||
if( !session && !isMapped )
|
if( ( !session || session->fake ) && !isMapped )
|
||||||
demandAttention();
|
demandAttention();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
3
sm.cpp
3
sm.cpp
|
@ -178,6 +178,7 @@ void Workspace::loadSessionInfo()
|
||||||
info->userNoBorder = config->readBoolEntry( QString("userNoBorder")+n, FALSE );
|
info->userNoBorder = config->readBoolEntry( QString("userNoBorder")+n, FALSE );
|
||||||
info->windowType = txtToWindowType( config->readEntry( QString("windowType")+n ).latin1());
|
info->windowType = txtToWindowType( config->readEntry( QString("windowType")+n ).latin1());
|
||||||
info->active = ( active_client == i );
|
info->active = ( active_client == i );
|
||||||
|
info->fake = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -212,6 +213,7 @@ void Workspace::loadFakeSessionInfo()
|
||||||
info->userNoBorder = config->readBoolEntry( QString("userNoBorder")+n, FALSE );
|
info->userNoBorder = config->readBoolEntry( QString("userNoBorder")+n, FALSE );
|
||||||
info->windowType = txtToWindowType( config->readEntry( QString("windowType")+n ).latin1());
|
info->windowType = txtToWindowType( config->readEntry( QString("windowType")+n ).latin1());
|
||||||
info->active = false;
|
info->active = false;
|
||||||
|
info->fake = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -241,6 +243,7 @@ void Workspace::storeFakeSessionInfo( Client* c )
|
||||||
info->userNoBorder = c->isUserNoBorder();
|
info->userNoBorder = c->isUserNoBorder();
|
||||||
info->windowType = c->windowType();
|
info->windowType = c->windowType();
|
||||||
info->active = false;
|
info->active = false;
|
||||||
|
info->fake = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Workspace::writeFakeSessionInfo()
|
void Workspace::writeFakeSessionInfo()
|
||||||
|
|
1
sm.h
1
sm.h
|
@ -46,6 +46,7 @@ struct SessionInfo
|
||||||
bool userNoBorder;
|
bool userNoBorder;
|
||||||
NET::WindowType windowType;
|
NET::WindowType windowType;
|
||||||
bool active; // means 'was active in the saved session', not used otherwise
|
bool active; // means 'was active in the saved session', not used otherwise
|
||||||
|
bool fake; // fake session, i.e. 'save window settings', not SM restored
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue