Просмотр исходного кода

fix formatting cancellation when the default editing mode is "format".

Gildas 5 лет назад
Родитель
Сommit
3c4e94a4c5
2 измененных файлов с 15 добавлено и 12 удалено
  1. 11 9
      extension/ui/bg/ui-editor.js
  2. 4 3
      extension/ui/content/content-ui-editor-web.js

+ 11 - 9
extension/ui/bg/ui-editor.js

@@ -278,15 +278,17 @@ singlefile.extension.ui.bg.editor = (() => {
 				document.head.appendChild(linkElement);
 			}
 			tabData.docSaved = true;
-			const defaultEditorMode = tabData.options.defaultEditorMode;
-			if (defaultEditorMode == "edit") {
-				enableEditPage();
-			} else if (defaultEditorMode == "format" && !tabData.options.disableFormatPage) {
-				formatPage();
-			} else if (defaultEditorMode == "cut") {
-				enableCutInnerPage();
-			} else if (defaultEditorMode == "cut-external") {
-				enableCutOuterPage();
+			if (!message.reset) {
+				const defaultEditorMode = tabData.options.defaultEditorMode;
+				if (defaultEditorMode == "edit") {
+					enableEditPage();
+				} else if (defaultEditorMode == "format" && !tabData.options.disableFormatPage) {
+					formatPage();
+				} else if (defaultEditorMode == "cut") {
+					enableCutInnerPage();
+				} else if (defaultEditorMode == "cut-external") {
+					enableCutOuterPage();
+				}
 			}
 		}
 		if (message.method == "savePage") {

+ 4 - 3
extension/ui/content/content-ui-editor-web.js

@@ -932,11 +932,11 @@ table {
 			const file = event.dataTransfer.files[0];
 			event.preventDefault();
 			const content = new TextDecoder().decode(await file.arrayBuffer());
-			await init(content, file.name);
+			await init(content, { filename: file.name });
 		}
 	};
 
-	async function init(content, filename) {
+	async function init(content, { filename, reset } = {}) {
 		await initConstants();
 		const initScriptContentMatch = content.match(/<script data-template-shadow-root.*<\/script>/);
 		if (initScriptContentMatch && initScriptContentMatch[0]) {
@@ -981,6 +981,7 @@ table {
 				title: document.title,
 				icon: iconElement && iconElement.href,
 				filename,
+				reset,
 				formatPageEnabled: isProbablyReaderable(document)
 			}), "*");
 		}
@@ -1679,7 +1680,7 @@ table {
 	async function cancelFormatPage() {
 		if (previousContent) {
 			const contentEditable = document.body.contentEditable;
-			await init(previousContent);
+			await init(previousContent, { reset: true });
 			document.body.contentEditable = contentEditable;
 			onUpdate(false);
 			previousContent = null;