From 4302ab05e46d551b4036e95332f27e98d57d5704 Mon Sep 17 00:00:00 2001
From: "alonso.torres" <alonso.torres@kaleidos.net>
Date: Tue, 27 Dec 2022 15:07:13 +0100
Subject: [PATCH] :bug: Fix problems with Safari texts

---
 CHANGES.md                                                 | 1 +
 frontend/src/app/main/ui/workspace/shapes/text/editor.cljs | 6 +++---
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/CHANGES.md b/CHANGES.md
index b3308c4f9..ea72f8fe7 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -23,6 +23,7 @@
 - Fix unable to select text at assets inputs in firefox [Taiga #4572](https://tree.taiga.io/project/penpot/issue/4572)
 - Fix component sync when converting to path [Taiga #3642](https://tree.taiga.io/project/penpot/issue/3642)
 - Fix style for team invite in deutsch [Taiga #4614](https://tree.taiga.io/project/penpot/issue/4614)
+- Fix problem with text edition in Safari [Taiga #4046](https://tree.taiga.io/project/penpot/issue/4046)
 
 ### :arrow_up: Deps updates
 
diff --git a/frontend/src/app/main/ui/workspace/shapes/text/editor.cljs b/frontend/src/app/main/ui/workspace/shapes/text/editor.cljs
index e323b4672..f18a8eab3 100644
--- a/frontend/src/app/main/ui/workspace/shapes/text/editor.cljs
+++ b/frontend/src/app/main/ui/workspace/shapes/text/editor.cljs
@@ -199,7 +199,7 @@
              (st/emit! (dwt/update-editor-state shape state)))
            "handled"))
 
-        on-click
+        on-mouse-down
         (mf/use-callback
          (fn [event]
            (when (dom/class? (dom/get-target event) "DraftEditor-root")
@@ -227,7 +227,7 @@
               ;; the underlying text. Use opacity because display or visibility won't allow to recover
               ;; focus afterwards.
               :opacity (when @blurred 0)}
-      :on-click on-click
+      :on-mouse-down on-mouse-down
       :class (dom/classnames
               :align-top    (= (:vertical-align content "top") "top")
               :align-center (= (:vertical-align content) "center")
@@ -295,7 +295,7 @@
                :fill "red"}]]]
 
      [:foreignObject {:x x :y y :width width :height height}
-      [:div {:style {:position "absolute"
+      [:div {:style {:position "fixed"
                      :left 0
                      :top  (- (:y shape) y)
                      :pointer-events "all"}}