Browse Source

【fix】【内容编辑】夜间模式,悬浮菜单字体缩放时,能明显感觉到在刷新

TangChao 7 months ago
parent
commit
4e85595f79

+ 6 - 1
PDF Office/PDF Master/Class/PDFTools/EditPDF/Tools/KMEditPDfHanddler.swift

@@ -21,6 +21,7 @@ class KMEditPDfHanddler: NSObject {
     
     // 正在新增文本块
     var addTextAreaing = false
+    var fontSizeChanging = false
     
     weak var listView: CPDFListView? {
         get {
@@ -940,7 +941,9 @@ extension KMEditPDfHanddler {
         let areas = self.editingTextAreas
         for area in areas {
             if let fontSize = self.listView?.editingSelectionFontSize(byRangeEdit: area) {
+                self.fontSizeChanging = true
                 self.listView?.setEditingSelectionFontSize(fontSize+1, with: area, isAutoSize: false)
+                self.fontSizeChanging = false
             }
         }
         self._reloadData_right_text()
@@ -950,7 +953,9 @@ extension KMEditPDfHanddler {
         let areas = self.editingTextAreas
         for area in areas {
             if let fontSize = self.listView?.editingSelectionFontSize(byRangeEdit: area) {
+                self.fontSizeChanging = true
                 self.listView?.setEditingSelectionFontSize(fontSize-1, with: area, isAutoSize: false)
+                self.fontSizeChanging = false
             }
         }
         self._reloadData_right_text()
@@ -1717,7 +1722,7 @@ extension KMEditPDfHanddler: CPDFViewDelegate {
 //            self.rightViewC?.eidtPDFTextProperty.reloadData()
 //            self.rightViewC?.eidtPDFTextProperty.updateTextTextPresuppositionState()
             
-            if self.addTextAreaing == false {
+            if self.addTextAreaing == false && self.fontSizeChanging == false {
                 self.showPopWindow(positionRect: .zero, showGuide: false)
                 self._reloadData_right_text()
             }

+ 3 - 0
PDF Office/PDF Master/Class/PDFTools/EditPDF/Window/KMEditPDFPopToolBarWindow.swift

@@ -239,6 +239,9 @@ import Cocoa
             let contentViewC = self.contentViewController as? KMEditPDFPopToolBarController
             for model in contentViewC?.datas ?? [] {
                 if model.itemKey == .textAlignment {
+                    if model.textAlign == align {
+                        break;
+                    }
                     model.textAlign = align
                     contentViewC?.toolbarView?.reloadData()
                     break;

+ 16 - 11
PDF Office/PDF Master/Class/PDFWindowController/Side/RightSide/EditPDF/KMEditPDFTextPropertyViewController.swift

@@ -995,35 +995,40 @@ extension KMEditPDFTextPropertyViewController {
         self._trackEvent()
     }
     
-    @objc func leftAlignmentAction() {
+    @objc func leftAlignmentAction(sender: NSButton?) {
         self.leftAlignmentVC?.state = .Sel
         self.rightAlignmentVC?.state = .Norm
         self.centerAlignmentVC?.state = .Norm
         self.updateAlignment(alignment: .left)
-        
-        KMEditPDFPopToolBarWindow.shared.updateTextAlign(align: .left)
+        if let _ = sender {
+            KMEditPDFPopToolBarWindow.shared.updateTextAlign(align: .left)
+        }
         
         self._trackEvent()
     }
     
-    @objc func centerAlignmentAction() {
+    @objc func centerAlignmentAction(sender: NSButton?) {
         self.leftAlignmentVC?.state = .Norm
         self.rightAlignmentVC?.state = .Norm
         self.centerAlignmentVC?.state = .Sel
         self.updateAlignment(alignment: .center)
         
-        KMEditPDFPopToolBarWindow.shared.updateTextAlign(align: .center)
+        if let _ = sender {
+            KMEditPDFPopToolBarWindow.shared.updateTextAlign(align: .center)
+        }
         
         self._trackEvent()
     }
     
-    @objc func rightAlignmentAction() {
+    @objc func rightAlignmentAction(sender: NSButton?) {
         self.leftAlignmentVC?.state = .Norm
         self.rightAlignmentVC?.state = .Sel
         self.centerAlignmentVC?.state = .Norm
         self.updateAlignment(alignment: .right)
         
-        KMEditPDFPopToolBarWindow.shared.updateTextAlign(align: .right)
+        if let _ = sender {
+            KMEditPDFPopToolBarWindow.shared.updateTextAlign(align: .right)
+        }
         
         self._trackEvent()
     }
@@ -1031,13 +1036,13 @@ extension KMEditPDFTextPropertyViewController {
     func selectAlignment(alignment: NSTextAlignment) {
         switch alignment {
         case .left:
-            self.leftAlignmentAction()
+            self.leftAlignmentAction(sender: nil)
         case .right:
-            self.rightAlignmentAction()
+            self.rightAlignmentAction(sender: nil)
         case .center:
-            self.centerAlignmentAction()
+            self.centerAlignmentAction(sender: nil)
         default:
-            self.leftAlignmentAction()
+            self.leftAlignmentAction(sender: nil)
         }
     }