From 6a4d505033f76124fa6d357b25c81a84cd89e935 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Thu, 16 Mar 2023 15:07:33 +0100 Subject: [PATCH] :bug: Fix problem with alt getting stuck when alt+tab --- CHANGES.md | 1 + frontend/src/app/main/data/workspace.cljs | 7 +++++++ frontend/src/app/main/ui/workspace.cljs | 17 ++++++++++++++++- 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/CHANGES.md b/CHANGES.md index 10fba1305..84b4fd9d6 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -30,6 +30,7 @@ - Fix close colorpicker on Firefox when mouse-up is outside the picker [#2911](https://github.com/penpot/penpot/issues/2911) - Fix problems with touch devices and Wacom tablets [#2216](https://github.com/penpot/penpot/issues/2216) - Fix problem with board titles misplaced [Taiga #4738](https://tree.taiga.io/project/penpot/issue/4738) +- Fix problem with alt getting stuck when alt+tab [Taiga #5013](https://tree.taiga.io/project/penpot/issue/5013) ### :heart: Community contributions by (Thank you!) - To @ondrejkonec: for contributing to the code with: diff --git a/frontend/src/app/main/data/workspace.cljs b/frontend/src/app/main/data/workspace.cljs index 18b5aa8f4..22de3463b 100644 --- a/frontend/src/app/main/data/workspace.cljs +++ b/frontend/src/app/main/data/workspace.cljs @@ -1008,6 +1008,13 @@ ;; Navigation ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(defn workspace-focus-lost + [] + (ptk/reify ::workspace-focus-lost + ptk/UpdateEvent + (update [_ state] + (assoc-in state [:workspace-global :show-distances?] false)))) + (defn navigate-to-project [project-id] (ptk/reify ::navigate-to-project diff --git a/frontend/src/app/main/ui/workspace.cljs b/frontend/src/app/main/ui/workspace.cljs index d9be83a3a..751ebdf8c 100644 --- a/frontend/src/app/main/ui/workspace.cljs +++ b/frontend/src/app/main/ui/workspace.cljs @@ -5,6 +5,7 @@ ;; Copyright (c) KALEIDOS INC (ns app.main.ui.workspace + (:import goog.events.EventType) (:require [app.common.colors :as clr] [app.common.data.macros :as dm] @@ -32,9 +33,11 @@ [app.main.ui.workspace.textpalette :refer [textpalette]] [app.main.ui.workspace.viewport :refer [viewport]] [app.util.dom :as dom] + [app.util.globals :as globals] [app.util.i18n :as i18n :refer [tr]] [app.util.object :as obj] [debug :refer [debug?]] + [goog.events :as events] [okulary.core :as l] [rumext.v2 :as mf])) @@ -136,7 +139,19 @@ components-v2 (features/use-feature :components-v2) - background-color (:background-color wglobal)] + background-color (:background-color wglobal) + + focus-out + (mf/use-callback + (fn [] + (st/emit! (dw/workspace-focus-lost))))] + + (mf/use-effect + (mf/deps focus-out) + (fn [] + (let [keys [(events/listen globals/document EventType.FOCUSOUT focus-out)]] + #(doseq [key keys] + (events/unlistenByKey key))))) ;; Setting the layout preset by its name (mf/with-effect [layout-name]