Browse Source

fix: 二轮测试问题

wzl 7 months ago
parent
commit
5b2789ec69

+ 1 - 1
packages/core/src/editor/add_image.js

@@ -83,7 +83,7 @@ export default class AddImage {
   handleMouseDown (event) {
     if (this.contentContainer.selectedFrameIndex !== -1) return
     if (!event.target.className && !event.target.className.includes('contentContainer')) return
-    if (event.target.className.includes('image-container')) return
+    if (event.target.className?.includes('image-container')) return
     
     const { x, y } = getAbsoluteCoordinate(this.container, event)
     this.initStartPoint = { x, y }

+ 6 - 2
packages/core/src/editor/image_editor.js

@@ -481,7 +481,9 @@ export class ImageEditor {
       this.outerLine,
       this.deletetButton,
       document.querySelector('.editor-panel'),
-      document.getElementById('propertyPanelButton')
+      document.getElementById('propertyPanelButton'),
+      document.getElementById('undo'),
+      document.getElementById('redo')
     ], this.handleOutside.bind(this))
   }
 
@@ -1158,7 +1160,9 @@ export class ImageEditor {
       this.outerLine,
       this.deletetButton,
       document.querySelector('.editor-panel'),
-      document.getElementById('propertyPanelButton')
+      document.getElementById('propertyPanelButton'),
+      document.getElementById('undo'),
+      document.getElementById('redo')
     ], this.handleOutside.bind(this))
   }
 

+ 26 - 9
packages/core/src/editor/text_editor.js

@@ -311,6 +311,8 @@ export class TextEditor {
       this.addUndoHistory()
       this.newAdd = false
     }
+    
+    this.updateCanvas()
   }
 
   getActualRect (viewport, s, frame) {
@@ -607,7 +609,9 @@ export class TextEditor {
         this.textContainer,
         this.outerLine,
         document.querySelector('.editor-panel'),
-        document.getElementById('propertyPanelButton')
+        document.getElementById('propertyPanelButton'),
+        document.getElementById('undo'),
+        document.getElementById('redo')
       ], this.handleOutside.bind(this))
     }
   }
@@ -795,7 +799,9 @@ export class TextEditor {
         this.textContainer,
         this.outerLine,
         document.querySelector('.editor-panel'),
-        document.getElementById('propertyPanelButton')
+        document.getElementById('propertyPanelButton'),
+        document.getElementById('undo'),
+        document.getElementById('redo')
       ], this.handleOutside.bind(this))
       return
     }
@@ -838,7 +844,9 @@ export class TextEditor {
           this.textContainer,
           this.outerLine,
           document.querySelector('.editor-panel'),
-          document.getElementById('propertyPanelButton')
+          document.getElementById('propertyPanelButton'),
+          document.getElementById('undo'),
+          document.getElementById('redo')
         ], this.handleOutside.bind(this))
       }
     }
@@ -1150,11 +1158,16 @@ export class TextEditor {
       editAreaPtr: this.editAreaPtr,
       char: this.activeCharPlace
     })
-    style.fontFamily = fontName
+    fontName && (style.fontFamily = fontName)
 
     this.textStyle = style
 
-    this.eventBus.dispatch('contentPropertyChange', { type: 'text', ...style })
+    const alignType = await this.messageHandler.sendWithPromise('GetTextSectionAlignType', {
+      editAreaPtr: this.editAreaPtr,
+      char: this.activeCharPlace
+    })
+
+    this.eventBus.dispatch('contentPropertyChange', { type: 'text', ...style, alignType })
   }
 
   // 某个操作之后,获取光标所在字符的位置
@@ -1674,7 +1687,9 @@ export class TextEditor {
       this.textContainer,
       this.outerLine,
       document.querySelector('.editor-panel'),
-      document.getElementById('propertyPanelButton')
+      document.getElementById('propertyPanelButton'),
+      document.getElementById('undo'),
+      document.getElementById('redo')
     ],this.handleOutside.bind(this))
   }
 
@@ -1708,8 +1723,8 @@ export class TextEditor {
     this.state = 0
     // await this.handleOutside()
     
-    this.outerLine.remove()
-    this.frameContainer.remove()
+    this.outerLine?.remove()
+    this.frameContainer?.remove()
     this.frameContainer = null
     this.contentContainer.selectedFrameIndex = -1
     this.removed = true
@@ -1804,6 +1819,8 @@ export class TextEditor {
 
     this.drawCanvas()
     this.saveEdit()
-    this.contentContainer.selectedFrameIndex === this.editAreaIndex && this.getTextStyle()
+    if (this.contentContainer.selectedFrameIndex === this.editAreaIndex) {
+      this.getTextStyle()
+    }
   }
 }

+ 1 - 0
packages/core/src/pdf_page_view.js

@@ -282,6 +282,7 @@ class PDFPageView {
         await this.contentContainer.init()
       } else {
         this.contentContainer.destroy()
+        this.contentContainer = null
       }
     }
 

+ 3 - 0
packages/core/src/pdf_viewer.js

@@ -1469,6 +1469,9 @@ class PDFViewer {
    */
   _cancelRendering() {
     for (const pageView of this._pages) {
+      pageView.contentContainer?.destroy();
+      pageView.contentContainer = null;
+
       pageView.cancelRendering();
     }
   }

+ 8 - 0
packages/core/src/worker/compdfkit_worker.js

@@ -1401,6 +1401,14 @@ class CPDFWorker {
       return await copyDocument(doc, password)
     })
 
+    messageHandler.on('GetTextSectionAlignType', async (data) => {
+      const { editAreaPtr, char } = data
+      return Module._GetTextSectionAlignType(
+        editAreaPtr,
+        char.SectionIndex, char.LineIndex, char.RunIndex, char.CharIndex,
+      )
+    })
+
     messageHandler.on('InsertPage', (data) => {
       const { doc, index, width, height } = data
       const res = Module._InsertPage(doc, index, width, height)

+ 1 - 1
packages/webview/src/components/PageNavOverlay/PageNavOverlay.vue

@@ -95,7 +95,7 @@
     position: fixed;
     bottom: 20px;
     left: 50%;
-    z-index: 2;
+    z-index: 3;
     display: flex;
     justify-content: space-between;
     align-items: center;