From a4e3fba96852ac90f758efa15da0caf2e74e6843 Mon Sep 17 00:00:00 2001 From: eight Date: Tue, 19 Sep 2017 08:49:38 +0800 Subject: [PATCH] Fix: source editor is not closed when style is removed --- edit/edit.js | 3 ++- edit/source-editor.js | 9 ++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/edit/edit.js b/edit/edit.js index 855e7932..a4d7932a 100644 --- a/edit/edit.js +++ b/edit/edit.js @@ -2072,8 +2072,9 @@ function onRuntimeMessage(request) { } break; case 'styleDeleted': - if (styleId && styleId === request.id) { + if (styleId && styleId === request.id || editor && editor.getStyle().id === request.id) { window.onbeforeunload = () => {}; + // FIXME: Scripts may not close windows that were not opened by script. window.close(); break; } diff --git a/edit/source-editor.js b/edit/source-editor.js index ac7e4f2f..e9ab02a7 100644 --- a/edit/source-editor.js +++ b/edit/source-editor.js @@ -458,5 +458,12 @@ function createSourceEditor(style) { }); } - return {replaceStyle, save, toggleStyle, updateStyleMeta, isDirty: dirty.isDirty}; + return { + replaceStyle, + save, + toggleStyle, + updateStyleMeta, + isDirty: dirty.isDirty, + getStyle: () => style + }; }