private void OnScreenSizeChanged(int newSize, bool forceSet = false, bool? toggleFullScreen = null)
{
// Figure what mode we should be in.
ScreenMode newMode = newSize > (MAX_PANEL_SIZE *2) ? ScreenMode.Split : ScreenMode.Single;
// Enter full screen if we should.
if(toggleFullScreen.HasValue && toggleFullScreen.Value)
{
newMode = ScreenMode.FullScreen;
}
// If we are in full screen...
if(m_screenMode == ScreenMode.FullScreen)
{
// and we don't have a value for toggle or the value it true...
if(!toggleFullScreen.HasValue || toggleFullScreen.Value)
{
// Make sure we stay in full screen.
newMode = ScreenMode.FullScreen;
}
}
if (newMode != m_screenMode || forceSet)
{
// If we are animating we can't update. So set the deferral and it will
// be taken care of when the animation is done.
lock (m_panelStack)
{
if (m_state != State.Idle)
{
m_deferedScreenUpdate = newMode;
return;
}
// Otherwise do the logic
ExecuteOnScreenSizeChagnedLogic(newMode);
}
}
}