From e799d882a9ff2407ef443c0386d6c888a826b63a Mon Sep 17 00:00:00 2001
From: biwa <foracc@d00m.info>
Date: Tue, 17 Sep 2019 20:22:51 +0200
Subject: [PATCH] Fixed a crash when manually modifying a sidedef's sector
 index to a sector with a tag

---
 .../Plugins/BuilderModes/ClassicModes/LinedefsMode.cs  | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/Source/Plugins/BuilderModes/ClassicModes/LinedefsMode.cs b/Source/Plugins/BuilderModes/ClassicModes/LinedefsMode.cs
index b84346678..5606628ee 100755
--- a/Source/Plugins/BuilderModes/ClassicModes/LinedefsMode.cs
+++ b/Source/Plugins/BuilderModes/ClassicModes/LinedefsMode.cs
@@ -821,7 +821,10 @@ namespace CodeImp.DoomBuilder.BuilderModes
 					if(General.Interface.IsActiveWindow)
 					{
 						// Show line edit dialog
+						General.Interface.OnEditFormValuesChanged += linedefEditForm_OnValuesChanged;
 						DialogResult result = General.Interface.ShowEditLinedefs(selected);
+						General.Interface.OnEditFormValuesChanged -= linedefEditForm_OnValuesChanged;
+
 						General.Map.Map.Update();
 						
 						// When a single line was selected, deselect it now
@@ -835,6 +838,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 						}
 
 						// Update entire display
+						SetupSectorLabels();
 						General.Map.Renderer2D.UpdateExtraFloorFlag(); //mxd
 						UpdateSelectionInfo(); //mxd
 						General.Interface.RedrawDisplay();
@@ -847,6 +851,12 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			base.OnEditEnd();
 		}
 
+		private void linedefEditForm_OnValuesChanged(object sender, EventArgs e)
+		{
+			// This does nothing. It prevents automatic OnRedrawDisplay when closing the linedef edit form
+			// Required to prevent crash from issue #298
+		}
+
 		//mxd
 		public override void OnUndoEnd()
 		{
-- 
GitLab