From 84b7a2de0b15d06a5bef896b0569fcadbf22e9f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Moya?= Date: Mon, 15 Mar 2021 14:52:48 +0100 Subject: [PATCH] :sparkles: Disable drag enter/leave animation in webkit browsers --- frontend/src/app/main/ui/dashboard/grid.cljs | 3 ++- frontend/src/app/util/dom/dnd.cljs | 8 ++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/frontend/src/app/main/ui/dashboard/grid.cljs b/frontend/src/app/main/ui/dashboard/grid.cljs index 0161b4b2d..2d548c14e 100644 --- a/frontend/src/app/main/ui/dashboard/grid.cljs +++ b/frontend/src/app/main/ui/dashboard/grid.cljs @@ -294,7 +294,8 @@ (fn [e] (when (dnd/has-type? e "penpot/files") (dom/prevent-default e) - (when-not (dnd/from-child? e) + (when-not (or (dnd/from-child? e) + (dnd/broken-event? e)) (when (not= selected-project project-id) (reset! dragging? true)))))) diff --git a/frontend/src/app/util/dom/dnd.cljs b/frontend/src/app/util/dom/dnd.cljs index 8887417e9..a71bf8d00 100644 --- a/frontend/src/app/util/dom/dnd.cljs +++ b/frontend/src/app/util/dom/dnd.cljs @@ -98,6 +98,14 @@ related (.-relatedTarget e)] (.contains target related))) +(defn broken-event? + [e] + ;; WebKit browsers (Safari & Epiphany) do not send the relatedEvent + ;; property (https://bugs.webkit.org/show_bug.cgi?id=66547) so + ;; there is no decent way of discriminating redundant enter/leave + ;; events. + (nil? (.-relatedTarget e))) + (defn get-data ([e] (get-data e "penpot/data"))