Handle focus changes correctly on lock - refocus the "focused" window
This commit is contained in:
14
main.janet
14
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)]
|
||||
|
||||
Reference in New Issue
Block a user