From bc5b6cd08c8974122428f87312d0c1c2393e6fdd Mon Sep 17 00:00:00 2001
From: Calixte Denizet <calixte.denizet@gmail.com>
Date: Wed, 29 Jun 2022 16:11:11 +0200
Subject: [PATCH] [Editor] Set the freetext editor dimensions when the changing
 the font size

---
 src/display/editor/freetext.js | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/src/display/editor/freetext.js b/src/display/editor/freetext.js
index 25a092ad8..0f37734c8 100644
--- a/src/display/editor/freetext.js
+++ b/src/display/editor/freetext.js
@@ -145,6 +145,7 @@ class FreeTextEditor extends AnnotationEditor {
       this.editorDiv.style.fontSize = `calc(${size}px * var(--scale-factor))`;
       this.translate(0, -(size - this.#fontSize) * this.parent.scaleFactor);
       this.#fontSize = size;
+      this.#setEditorDimensions();
     };
     const savedFontsize = this.#fontSize;
     this.parent.addCommands({
@@ -260,6 +261,14 @@ class FreeTextEditor extends AnnotationEditor {
     return buffer.join("\n");
   }
 
+  #setEditorDimensions() {
+    const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions;
+    const rect = this.div.getBoundingClientRect();
+
+    this.width = rect.width / parentWidth;
+    this.height = rect.height / parentHeight;
+  }
+
   /**
    * Commit the content we have in this editor.
    * @returns {undefined}
@@ -276,10 +285,7 @@ class FreeTextEditor extends AnnotationEditor {
     this.#contentHTML = this.editorDiv.innerHTML;
     this.#content = this.#extractText().trimEnd();
 
-    const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions;
-    const style = getComputedStyle(this.div);
-    this.width = parseFloat(style.width) / parentWidth;
-    this.height = parseFloat(style.height) / parentHeight;
+    this.#setEditorDimensions();
   }
 
   /** @inheritdoc */