Fix moving and resizing editor/debugger window
* Stop hard drive thrashing when moving/resizing * Also fixed #691.1008-fix
parent
75d9f8573b
commit
2d2990ff91
|
@ -121,6 +121,8 @@ void CSettings::SaveSettings()
|
||||||
GetConfigFile().SetFloatProperty("Edit", "WindowPosY", m_windowPos.y);
|
GetConfigFile().SetFloatProperty("Edit", "WindowPosY", m_windowPos.y);
|
||||||
GetConfigFile().SetFloatProperty("Edit", "WindowDimX", m_windowDim.x);
|
GetConfigFile().SetFloatProperty("Edit", "WindowDimX", m_windowDim.x);
|
||||||
GetConfigFile().SetFloatProperty("Edit", "WindowDimY", m_windowDim.y);
|
GetConfigFile().SetFloatProperty("Edit", "WindowDimY", m_windowDim.y);
|
||||||
|
GetConfigFile().SetBoolProperty ("Edit", "WindowMaximized", m_windowMax);
|
||||||
|
|
||||||
GetConfigFile().SetBoolProperty("Edit", "IOPublic", m_IOPublic);
|
GetConfigFile().SetBoolProperty("Edit", "IOPublic", m_IOPublic);
|
||||||
GetConfigFile().SetFloatProperty("Edit", "IOPosX", m_IOPos.x);
|
GetConfigFile().SetFloatProperty("Edit", "IOPosX", m_IOPos.x);
|
||||||
GetConfigFile().SetFloatProperty("Edit", "IOPosY", m_IOPos.y);
|
GetConfigFile().SetFloatProperty("Edit", "IOPosY", m_IOPos.y);
|
||||||
|
@ -281,6 +283,7 @@ void CSettings::LoadSettings()
|
||||||
GetConfigFile().GetFloatProperty("Edit", "WindowPosY", m_windowPos.y);
|
GetConfigFile().GetFloatProperty("Edit", "WindowPosY", m_windowPos.y);
|
||||||
GetConfigFile().GetFloatProperty("Edit", "WindowDimX", m_windowDim.x);
|
GetConfigFile().GetFloatProperty("Edit", "WindowDimX", m_windowDim.x);
|
||||||
GetConfigFile().GetFloatProperty("Edit", "WindowDimY", m_windowDim.y);
|
GetConfigFile().GetFloatProperty("Edit", "WindowDimY", m_windowDim.y);
|
||||||
|
GetConfigFile().GetBoolProperty ("Edit", "WindowMaximized", m_windowMax);
|
||||||
|
|
||||||
GetConfigFile().GetBoolProperty ("Edit", "IOPublic", m_IOPublic);
|
GetConfigFile().GetBoolProperty ("Edit", "IOPublic", m_IOPublic);
|
||||||
GetConfigFile().GetFloatProperty("Edit", "IOPosX", m_IOPos.x);
|
GetConfigFile().GetFloatProperty("Edit", "IOPosX", m_IOPos.x);
|
||||||
|
@ -393,6 +396,18 @@ Math::Point CSettings::GetWindowDim()
|
||||||
return m_windowDim;
|
return m_windowDim;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CSettings::SetWindowMax(bool max)
|
||||||
|
{
|
||||||
|
m_windowMax = max;
|
||||||
|
GetConfigFile().SetBoolProperty("Edit", "WindowMaximized", m_windowMax);
|
||||||
|
GetConfigFile().Save();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CSettings::GetWindowMax()
|
||||||
|
{
|
||||||
|
return m_windowMax;
|
||||||
|
}
|
||||||
|
|
||||||
void CSettings::SetIOPublic(bool mode)
|
void CSettings::SetIOPublic(bool mode)
|
||||||
{
|
{
|
||||||
m_IOPublic = mode;
|
m_IOPublic = mode;
|
||||||
|
|
|
@ -70,6 +70,9 @@ public:
|
||||||
|
|
||||||
void SetWindowDim(Math::Point dim);
|
void SetWindowDim(Math::Point dim);
|
||||||
Math::Point GetWindowDim();
|
Math::Point GetWindowDim();
|
||||||
|
|
||||||
|
void SetWindowMax(bool max);
|
||||||
|
bool GetWindowMax();
|
||||||
//@}
|
//@}
|
||||||
|
|
||||||
//! Managing windows open/save
|
//! Managing windows open/save
|
||||||
|
@ -98,6 +101,7 @@ protected:
|
||||||
float m_fontSize;
|
float m_fontSize;
|
||||||
Math::Point m_windowPos;
|
Math::Point m_windowPos;
|
||||||
Math::Point m_windowDim;
|
Math::Point m_windowDim;
|
||||||
|
bool m_windowMax;
|
||||||
|
|
||||||
bool m_IOPublic;
|
bool m_IOPublic;
|
||||||
Math::Point m_IOPos;
|
Math::Point m_IOPos;
|
||||||
|
|
|
@ -249,16 +249,16 @@ bool CStudio::EventProcess(const Event &event)
|
||||||
{
|
{
|
||||||
m_editActualPos = m_editFinalPos = pw->GetPos();
|
m_editActualPos = m_editFinalPos = pw->GetPos();
|
||||||
m_editActualDim = m_editFinalDim = pw->GetDim();
|
m_editActualDim = m_editFinalDim = pw->GetDim();
|
||||||
m_settings->SetWindowPos(m_editActualPos);
|
m_windowPos = m_editActualPos;
|
||||||
m_settings->SetWindowDim(m_editActualDim);
|
m_windowDim = m_editActualDim;
|
||||||
AdjustEditScript();
|
AdjustEditScript();
|
||||||
}
|
}
|
||||||
if ( event.type == pw->GetEventTypeReduce() )
|
if ( event.type == pw->GetEventTypeReduce() )
|
||||||
{
|
{
|
||||||
if ( m_bEditMinimized )
|
if ( m_bEditMinimized )
|
||||||
{
|
{
|
||||||
m_editFinalPos = m_settings->GetWindowPos();
|
m_editFinalPos = m_windowPos;
|
||||||
m_editFinalDim = m_settings->GetWindowDim();
|
m_editFinalDim = m_windowDim;
|
||||||
m_bEditMinimized = false;
|
m_bEditMinimized = false;
|
||||||
m_bEditMaximized = false;
|
m_bEditMaximized = false;
|
||||||
}
|
}
|
||||||
|
@ -283,8 +283,8 @@ bool CStudio::EventProcess(const Event &event)
|
||||||
{
|
{
|
||||||
if ( m_bEditMaximized )
|
if ( m_bEditMaximized )
|
||||||
{
|
{
|
||||||
m_editFinalPos = m_settings->GetWindowPos();
|
m_editFinalPos = m_windowPos;
|
||||||
m_editFinalDim = m_settings->GetWindowDim();
|
m_editFinalDim = m_windowDim;
|
||||||
m_bEditMinimized = false;
|
m_bEditMinimized = false;
|
||||||
m_bEditMaximized = false;
|
m_bEditMaximized = false;
|
||||||
}
|
}
|
||||||
|
@ -579,8 +579,25 @@ void CStudio::StartEditScript(CScript *script, std::string name, Program* progra
|
||||||
pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW6));
|
pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW6));
|
||||||
if (pw != nullptr) pw->ClearState(STATE_VISIBLE | STATE_ENABLE);
|
if (pw != nullptr) pw->ClearState(STATE_VISIBLE | STATE_ENABLE);
|
||||||
|
|
||||||
pos = m_editFinalPos = m_editActualPos = m_settings->GetWindowPos();
|
m_windowPos = m_settings->GetWindowPos();
|
||||||
dim = m_editFinalDim = m_editActualDim = m_settings->GetWindowDim();
|
m_windowDim = m_settings->GetWindowDim();
|
||||||
|
m_bEditMaximized = m_settings->GetWindowMax();
|
||||||
|
|
||||||
|
if ( m_bEditMaximized )
|
||||||
|
{
|
||||||
|
m_editFinalPos.x = 0.00f;
|
||||||
|
m_editFinalPos.y = 0.00f;
|
||||||
|
m_editFinalDim.x = 1.00f;
|
||||||
|
m_editFinalDim.y = 1.00f;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_editFinalPos = m_windowPos;
|
||||||
|
m_editFinalDim = m_windowDim;
|
||||||
|
}
|
||||||
|
pos = m_editActualPos = m_editFinalPos;
|
||||||
|
dim = m_editActualDim = m_editFinalDim;
|
||||||
|
|
||||||
pw = m_interface->CreateWindows(pos, dim, 8, EVENT_WINDOW3);
|
pw = m_interface->CreateWindows(pos, dim, 8, EVENT_WINDOW3);
|
||||||
if (pw == nullptr)
|
if (pw == nullptr)
|
||||||
return;
|
return;
|
||||||
|
@ -597,6 +614,8 @@ void CStudio::StartEditScript(CScript *script, std::string name, Program* progra
|
||||||
pw->SetMinDim(Math::Point(0.49f, 0.50f));
|
pw->SetMinDim(Math::Point(0.49f, 0.50f));
|
||||||
pw->SetMaximized(m_bEditMaximized);
|
pw->SetMaximized(m_bEditMaximized);
|
||||||
pw->SetMinimized(m_bEditMinimized);
|
pw->SetMinimized(m_bEditMinimized);
|
||||||
|
|
||||||
|
// stop camera control if maximized
|
||||||
m_main->SetEditFull(m_bEditMaximized);
|
m_main->SetEditFull(m_bEditMaximized);
|
||||||
|
|
||||||
edit = pw->CreateEdit(pos, dim, 0, EVENT_STUDIO_EDIT);
|
edit = pw->CreateEdit(pos, dim, 0, EVENT_STUDIO_EDIT);
|
||||||
|
@ -910,6 +929,10 @@ bool CStudio::StopEditScript(bool closeWithErrors)
|
||||||
m_runningPause = nullptr;
|
m_runningPause = nullptr;
|
||||||
m_main->SetEditLock(false, true);
|
m_main->SetEditLock(false, true);
|
||||||
m_camera->SetType(m_editCamera);
|
m_camera->SetType(m_editCamera);
|
||||||
|
|
||||||
|
m_settings->SetWindowPos(m_windowPos);
|
||||||
|
m_settings->SetWindowDim(m_windowDim);
|
||||||
|
m_settings->SetWindowMax(m_bEditMaximized);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -108,6 +108,8 @@ protected:
|
||||||
Math::Point m_editActualDim;
|
Math::Point m_editActualDim;
|
||||||
Math::Point m_editFinalPos;
|
Math::Point m_editFinalPos;
|
||||||
Math::Point m_editFinalDim;
|
Math::Point m_editFinalDim;
|
||||||
|
Math::Point m_windowPos;
|
||||||
|
Math::Point m_windowDim;
|
||||||
|
|
||||||
float m_time;
|
float m_time;
|
||||||
float m_fixInfoTextTime;
|
float m_fixInfoTextTime;
|
||||||
|
|
Loading…
Reference in New Issue