From f693959df42e1adbfe3c8f9b056d1e602a7a9543 Mon Sep 17 00:00:00 2001
From: Derek MacDonald <derekmd@hotmail.com>
Date: Tue, 6 Apr 2021 14:38:48 -0400
Subject: [PATCH] Unchanged script editor skips implicit save (#543)

Stop calling ScriptFileDocumentTab.RemoveTrailingWhitespace()
on a text editor that has unchanged text. This causes the
currently-opened map to be marked 'isChanged == true' when
nothing is modified.
---
 Source/Core/Controls/Scripting/ScriptLumpDocumentTab.cs     | 3 +++
 Source/Core/Controls/Scripting/ScriptResourceDocumentTab.cs | 3 ++-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/Source/Core/Controls/Scripting/ScriptLumpDocumentTab.cs b/Source/Core/Controls/Scripting/ScriptLumpDocumentTab.cs
index 3c5d5636b..6cfacf37b 100755
--- a/Source/Core/Controls/Scripting/ScriptLumpDocumentTab.cs
+++ b/Source/Core/Controls/Scripting/ScriptLumpDocumentTab.cs
@@ -73,6 +73,7 @@ namespace CodeImp.DoomBuilder.Controls
 			{
 				editor.SetText(stream.ToArray()); //mxd
 				editor.ClearUndoRedo();
+				editor.SetSavePoint();
 			}
 
 			// Set title
@@ -108,6 +109,8 @@ namespace CodeImp.DoomBuilder.Controls
 		// Implicit save
 		public override bool Save()
 		{
+			if (!editor.IsChanged) return false;
+
             // [ZZ] remove trailing whitespace
             RemoveTrailingWhitespace();
 
diff --git a/Source/Core/Controls/Scripting/ScriptResourceDocumentTab.cs b/Source/Core/Controls/Scripting/ScriptResourceDocumentTab.cs
index 7166e949d..33328430e 100755
--- a/Source/Core/Controls/Scripting/ScriptResourceDocumentTab.cs
+++ b/Source/Core/Controls/Scripting/ScriptResourceDocumentTab.cs
@@ -48,6 +48,7 @@ namespace CodeImp.DoomBuilder.Controls
 				editor.SetText(stream.ToArray());
 				editor.Scintilla.ReadOnly = source.IsReadOnly;
 				editor.ClearUndoRedo();
+				editor.SetSavePoint();
 			}
 			else
 			{
@@ -92,7 +93,7 @@ namespace CodeImp.DoomBuilder.Controls
 		// Return true when successfully saved
 		public override bool Save()
 		{
-			if(source.IsReadOnly) return false;
+			if(source.IsReadOnly || !editor.IsChanged) return false;
 
             // [ZZ] remove trailing whitespace
             RemoveTrailingWhitespace();
-- 
GitLab