From 22237f9634953d34e9f969eaa2577b2eedc14281 Mon Sep 17 00:00:00 2001
From: Julia Radzhabova <Julia.Radzhabova@onlyoffice.com>
Date: Thu, 8 Feb 2018 18:22:32 +0300
Subject: [PATCH] Fix Bug 36885.

---
 apps/common/main/lib/controller/ExternalDiagramEditor.js | 2 +-
 apps/common/main/lib/view/ExternalDiagramEditor.js       | 9 ++++++---
 apps/spreadsheeteditor/main/app/controller/Main.js       | 3 ++-
 3 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/apps/common/main/lib/controller/ExternalDiagramEditor.js b/apps/common/main/lib/controller/ExternalDiagramEditor.js
index ac1f0fc14..ad90550a1 100644
--- a/apps/common/main/lib/controller/ExternalDiagramEditor.js
+++ b/apps/common/main/lib/controller/ExternalDiagramEditor.js
@@ -142,7 +142,6 @@ define([
                 if (this.isHandlerCalled) return;
                 this.isHandlerCalled = true;
                 externalEditor && externalEditor.serviceCommand('queryClose',{mr:result});
-                return true;
             },
 
             setChartData: function() {
@@ -210,6 +209,7 @@ define([
                             }
                             this.diagramEditorView.hide();
                         }
+                        this.isHandlerCalled = false;
                     } else
                     if (eventData.type == "processMouse") {
                         if (eventData.data.event == 'mouse:up') {
diff --git a/apps/common/main/lib/view/ExternalDiagramEditor.js b/apps/common/main/lib/view/ExternalDiagramEditor.js
index cdc4d8936..511fe6585 100644
--- a/apps/common/main/lib/view/ExternalDiagramEditor.js
+++ b/apps/common/main/lib/view/ExternalDiagramEditor.js
@@ -111,15 +111,18 @@ define([
         },
 
         onDlgBtnClick: function(event) {
-            var state = event.currentTarget.attributes['result'].value;
-            if ( this.handler && this.handler.call(this, state) )
+            if ( this.handler ) {
+                this.handler.call(this, event.currentTarget.attributes['result'].value);
                 return;
+            }
             this.hide();
         },
 
         onToolClose: function() {
-            if ( this.handler && this.handler.call(this, 'cancel') )
+            if ( this.handler ) {
+                this.handler.call(this, 'cancel');
                 return;
+            }
             this.hide();
         },
 
diff --git a/apps/spreadsheeteditor/main/app/controller/Main.js b/apps/spreadsheeteditor/main/app/controller/Main.js
index 6945654ce..fdf540b10 100644
--- a/apps/spreadsheeteditor/main/app/controller/Main.js
+++ b/apps/spreadsheeteditor/main/app/controller/Main.js
@@ -1734,7 +1734,8 @@ define([
                             this.api.asc_closeCellEditor();
                             Common.UI.Menu.Manager.hideAll();
                             Common.Gateway.internalMessage('canClose', {mr:data.data.mr, answer: true});
-                        }
+                        } else
+                            Common.Gateway.internalMessage('canClose', {answer: false});
                         break;
                     case 'window:drag':
                         this.isDiagramDrag = data.data;