From 160dde12cf15b7c83c668da8045d370d07af7598 Mon Sep 17 00:00:00 2001
From: spherallic <spherallic@gmail.com>
Date: Wed, 29 May 2024 13:35:41 +0200
Subject: [PATCH] Filter old lines and vertices by edited area when drawing
 geometry lines

---
 Source/Core/Geometry/Tools.cs | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/Source/Core/Geometry/Tools.cs b/Source/Core/Geometry/Tools.cs
index c4b24f967..fe7ec6cfd 100755
--- a/Source/Core/Geometry/Tools.cs
+++ b/Source/Core/Geometry/Tools.cs
@@ -1093,7 +1093,14 @@ namespace CodeImp.DoomBuilder.Geometry
 				map.BeginAddRemove();
 				MapSet.JoinVertices(mergeverts, MapSet.STITCH_DISTANCE); //mxd
 				map.EndAddRemove();
-				
+
+				// Filter old lines and vertices by edited area
+				RectangleF editarea = MapSet.CreateArea(newlines);
+				editarea = MapSet.IncreaseArea(editarea, mergeverts);
+				editarea.Inflate(1.0f, 1.0f);
+				oldlines = new List<Linedef>(MapSet.FilterByArea(oldlines, ref editarea));
+				nonmergeverts = new List<Vertex>(MapSet.FilterByArea(nonmergeverts, ref editarea));
+
 				/***************************************************\
 					Find a way to close the drawing
 				\***************************************************/
-- 
GitLab