From 48c9e2e08a37d46ce050c8f1a8d1bd360b8883ee Mon Sep 17 00:00:00 2001 From: Zoe Date: Fri, 3 Aug 2018 15:38:42 +0800 Subject: [PATCH] fix #ILSUD --- src/Common/Utils.ts | 8 ++++++++ src/Editor/GetEntityServices.ts | 2 ++ src/Editor/GetKeyWordService.tsx | 2 ++ src/UI/Components/Modal/ModalsManage.tsx | 5 +++++ 4 files changed, 17 insertions(+) diff --git a/src/Common/Utils.ts b/src/Common/Utils.ts index e73eea2a5..c42df297d 100644 --- a/src/Common/Utils.ts +++ b/src/Common/Utils.ts @@ -116,3 +116,11 @@ export async function readClipboardText() return await navigator["clipboard"].readText(); return ""; } + +export function Sleep(time: number) +{ + return new Promise(res => + { + setTimeout(res, time); + }) +} diff --git a/src/Editor/GetEntityServices.ts b/src/Editor/GetEntityServices.ts index fc6341a3a..c067e00b1 100644 --- a/src/Editor/GetEntityServices.ts +++ b/src/Editor/GetEntityServices.ts @@ -174,6 +174,8 @@ export class GetEntityServices implements EditorService } private Retun(result: PromptEntityResult) { + if (!this.m_promisResolve) + return; this.RestState(); this.m_promisResolve(result); } diff --git a/src/Editor/GetKeyWordService.tsx b/src/Editor/GetKeyWordService.tsx index c416a66a7..14f74fadc 100644 --- a/src/Editor/GetKeyWordService.tsx +++ b/src/Editor/GetKeyWordService.tsx @@ -151,6 +151,8 @@ export class GetKeyWordsServices implements EditorService } _Return(result: PromptResult) { + if (!this.m_PromisResolve) + return; this.IsReady = false; this.m_Editor.m_InputState &= ~InputState.GetKeyWord; this.removeCalls.forEach(f => f()); diff --git a/src/UI/Components/Modal/ModalsManage.tsx b/src/UI/Components/Modal/ModalsManage.tsx index d21746b18..5b6cfba21 100644 --- a/src/UI/Components/Modal/ModalsManage.tsx +++ b/src/UI/Components/Modal/ModalsManage.tsx @@ -10,6 +10,7 @@ import { Editor } from '../../../Editor/Editor'; import { PointPick } from '../../../Editor/PointPick'; import { LightModal } from './LightModal'; import './Modal.less'; +import { Sleep } from '../../../Common/Utils'; export enum ModalPosition { @@ -159,7 +160,11 @@ export class ModalManage if (app.m_Editor.m_CommandStore.isCmdIng) { app.m_Editor.Canel(); + await Sleep(10); } + if (app.m_Editor.m_CommandStore.isCmdIng) + return; + app.m_Editor.m_CommandStore.isCmdIng = true; app.m_Database.hm.StartCmd("draw"); await this.Callback();