diff --git a/main.janet b/main.janet index 26d1cf8..17b8a78 100644 --- a/main.janet +++ b/main.janet @@ -211,12 +211,11 @@ (defn seat/focus [seat window] (defn focus-window [window] - (unless (= (seat :focused) window) - (:focus-window (seat :obj) (window :obj)) - (put seat :focused window) - (set (wm :render-order) (filter |(not (= $ window)) (wm :render-order))) - (array/push (wm :render-order) window) - (:place-top (window :node)))) + (:focus-window (seat :obj) (window :obj)) + (put seat :focused window) + (set (wm :render-order) (filter |(not (= $ window)) (wm :render-order))) + (array/push (wm :render-order) window) + (:place-top (window :node))) (defn clear-focus [] (when (seat :focused) (:clear-focus (seat :obj)) @@ -287,6 +286,9 @@ (if (or (not (seat :focused-output)) ((seat :focused-output) :removed)) (seat/focus-output seat (first (wm :outputs)))) + (when (not= (seat :layer-focus) :non-exclusive) + (seat/focus seat (seat :focused))) + (seat/focus seat nil) (if-let [window (seat :window-interaction)]