summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Mikkel Oscar Lyderik <mikkeloscar@gmail.com>2016-03-17 17:02:17 +0100
committerLibravatar Mikkel Oscar Lyderik <mikkeloscar@gmail.com>2016-03-17 17:02:17 +0100
commitc1d57914828b33d24b14a27d371931b10721df11 (patch)
tree1965747b05e5a9cc2cff508f5f03c18a44eb849a
parentMerge pull request #513 from mikkeloscar/sway-bar-manpage (diff)
downloadsway-c1d57914828b33d24b14a27d371931b10721df11.tar.gz
sway-c1d57914828b33d24b14a27d371931b10721df11.tar.zst
sway-c1d57914828b33d24b14a27d371931b10721df11.zip
Focus correct swaylock view in multimonitor setup
Swaylock spawns and focuses a view for each output in sway. This can sometimes move the focus to a new output after locking and unlocking the screens. This patch makes sure that the output which had focus when swaylock was invoked, will regain focus once swaylock is closed/unlocked. Fix #499
-rw-r--r--sway/extensions.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/sway/extensions.c b/sway/extensions.c
index b3984595..9283b656 100644
--- a/sway/extensions.c
+++ b/sway/extensions.c
@@ -129,7 +129,12 @@ static void set_lock_surface(struct wl_client *client, struct wl_resource *resou
129 desktop_shell.is_locked = true; 129 desktop_shell.is_locked = true;
130 // reset input state 130 // reset input state
131 input_init(); 131 input_init();
132 set_focused_container(view); 132 // set focus if the lockscreen is spawned on the currently
133 // active output
134 swayc_t *focus_output = swayc_active_output();
135 if (focus_output == output) {
136 set_focused_container(view);
137 }
133 arrange_windows(workspace, -1, -1); 138 arrange_windows(workspace, -1, -1);
134 list_add(desktop_shell.lock_surfaces, surface); 139 list_add(desktop_shell.lock_surfaces, surface);
135 wl_resource_set_destructor(surface, lock_surface_destructor); 140 wl_resource_set_destructor(surface, lock_surface_destructor);