FIX: avoid arrange to outer when quick click autoarrangement in plate.

Change-Id: Ic8fa2f605094c7a3b7fa5a6fe36c5159678c50fd

STUDIO-2202
(cherry picked from commit 641c18c25f5f297234059d463ac12220c4b6fa9f)

Change-Id: Ic452f2fa4357fcacf71f6a70df2c514d2628b217
This commit is contained in:
miaoxin 2023-02-21 16:46:53 +08:00 committed by Lane.Wei
parent 4c93d6e59d
commit 3448b7a053
3 changed files with 12 additions and 2 deletions

View File

@ -750,6 +750,7 @@ void ArrangeJob::finalize() {
m_plater->update();
Job::finalize();
m_plater->m_arrange_running.store(false);
}
std::optional<arrangement::ArrangePolygon>

View File

@ -11098,8 +11098,10 @@ int Plater::select_plate_by_hover_id(int hover_id, bool right_click)
ret = select_plate(plate_index);
if (!ret)
{
set_prepare_state(Job::PREPARE_STATE_MENU);
arrange();
if (last_arrange_job_is_finished()) {
set_prepare_state(Job::PREPARE_STATE_MENU);
arrange();
}
}
else
{

View File

@ -678,6 +678,13 @@ public:
std::string get_preview_only_filename() { return m_preview_only_filename; };
bool last_arrange_job_is_finished()
{
bool prevRunning = false;
return m_arrange_running.compare_exchange_strong(prevRunning, true);
};
std::atomic<bool> m_arrange_running{false};
private:
struct priv;
std::unique_ptr<priv> p;