Forráskód Böngészése

ComPDFKit.Tool(win) - 优化内容编辑对象层级问题

TangJinZhou 5 hónapja
szülő
commit
d03b66e032
1 módosított fájl, 21 hozzáadás és 19 törlés
  1. 21 19
      Demo/Examples/ComPDFKit.Tool/CPDFViewerTool.TextEdit.cs

+ 21 - 19
Demo/Examples/ComPDFKit.Tool/CPDFViewerTool.TextEdit.cs

@@ -404,7 +404,7 @@ namespace ComPDFKit.Tool
                 if (item.CPDFEditPageObj == null)
                     continue;
 
-                foreach (CPDFEditArea editArea in item.CPDFEditPageObj.GetEditAreaList())
+                foreach (CPDFEditArea editArea in item.CPDFEditPageObj.GetEditAreaList().AsEnumerable().Reverse())
                 {
                     if (editArea is CPDFEditPathArea)
                     {
@@ -848,17 +848,17 @@ namespace ComPDFKit.Tool
             }
 
             //Prioritize the selected status
-            List<SelectedRect> checkList = new List<SelectedRect>();
-            if (hitTestRects != null && hitTestRects.Count > 0)
-            {
-                List<SelectedRect> checkedList = hitTestRects.AsEnumerable().Where(x => x.GetIsSelected() == true).ToList();
-                List<SelectedRect> unCheckList = hitTestRects.AsEnumerable().Where(x => x.GetIsSelected() == false).ToList();
+            //List<SelectedRect> checkList = new List<SelectedRect>();
+            //if (hitTestRects != null && hitTestRects.Count > 0)
+            //{
+            //    List<SelectedRect> checkedList = hitTestRects.AsEnumerable().Where(x => x.GetIsSelected() == true).ToList();
+            //    List<SelectedRect> unCheckList = hitTestRects.AsEnumerable().Where(x => x.GetIsSelected() == false).ToList();
 
-                checkList.AddRange(checkedList);
-                checkList.AddRange(unCheckList);
-            }
+            //    checkList.AddRange(checkedList);
+            //    checkList.AddRange(unCheckList);
+            //}
 
-            foreach (SelectedRect rect in checkList)
+            foreach (SelectedRect rect in hitTestRects)
             {
                 rect.SetIsHover(false);
                 rect.SetIsSelected(false);
@@ -1080,6 +1080,7 @@ namespace ComPDFKit.Tool
                     }
                 }
             }
+
             return false;
         }
 
@@ -1694,17 +1695,17 @@ namespace ComPDFKit.Tool
                 }
 
                 //Prioritize the selected status
-                List<SelectedRect> checkList = new List<SelectedRect>();
-                if (hitTestRects != null && hitTestRects.Count > 0)
-                {
-                    List<SelectedRect> checkedList = hitTestRects.AsEnumerable().Where(x => x.GetIsSelected() == true).ToList();
-                    List<SelectedRect> unCheckList = hitTestRects.AsEnumerable().Where(x => x.GetIsSelected() == false).ToList();
+                //List<SelectedRect> checkList = new List<SelectedRect>();
+                //if (hitTestRects != null && hitTestRects.Count > 0)
+                //{
+                //    List<SelectedRect> checkedList = hitTestRects.AsEnumerable().Where(x => x.GetIsSelected() == true).ToList();
+                //    List<SelectedRect> unCheckList = hitTestRects.AsEnumerable().Where(x => x.GetIsSelected() == false).ToList();
 
-                    checkList.AddRange(checkedList);
-                    checkList.AddRange(unCheckList);
-                }
+                //    checkList.AddRange(checkedList);
+                //    checkList.AddRange(unCheckList);
+                //}
 
-                foreach (SelectedRect rect in checkList)
+                foreach (SelectedRect rect in hitTestRects)
                 {
                     PointControlType pointControlType = rect.GetHitControlIndex(point, false);
                     MultiSelectedRect multiSelectedRect = CommonHelper.FindVisualChild<MultiSelectedRect>(PDFViewer.GetViewForTag(MultiSelectedRectViewTag));
@@ -1725,6 +1726,7 @@ namespace ComPDFKit.Tool
                             PointControlType pointMultiControlType = multiSelectedRect.GetHitControlIndex(Mouse.GetPosition(this));
                             cursor = GetCursors(pointMultiControlType, true);
                         }
+
                         if (pointControlType != PointControlType.None)
                         {
                             EditAreaObject editAreaObject = GetEditAreaObjectForRect(rect);