diff options
author | Drew DeVault <[email protected]> | 2016-09-01 08:34:52 -0400 |
---|---|---|
committer | Drew DeVault <[email protected]> | 2016-09-01 08:34:52 -0400 |
commit | 38ca94e0ed2fe33ab71076680e9f70409a2e4115 (patch) | |
tree | 1f07ca668671a5f135648095c82dfe029a72798d /sway/extensions.c | |
parent | 416417a54c5875abcdc257b6ad10ff086c35eefc (diff) |
Tweak how swaylock surfaces are handled
Fixes #875
Diffstat (limited to 'sway/extensions.c')
-rw-r--r-- | sway/extensions.c | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/sway/extensions.c b/sway/extensions.c index 70ec537d..60cd8d41 100644 --- a/sway/extensions.c +++ b/sway/extensions.c @@ -119,27 +119,21 @@ static void set_lock_surface(struct wl_client *client, struct wl_resource *resou if (!swayc_is_child_of(view, workspace)) { move_container_to(view, workspace); } - // make the view floating so it doesn't rearrange other - // siblings. + // make the view floating so it doesn't rearrange other siblings. if (!view->is_floating) { - // Remove view from its current location destroy_container(remove_child(view)); - // and move it into workspace floating add_floating(workspace, view); } wlc_view_set_state(view->handle, WLC_BIT_FULLSCREEN, true); - workspace->fullscreen = view; - ipc_event_window(view, "fullscreen_mode"); + wlc_view_bring_to_front(view->handle); + wlc_view_focus(view->handle); desktop_shell.is_locked = true; - // reset input state input_init(); - // set focus if the lockscreen is spawned on the currently - // active output + arrange_windows(workspace, -1, -1); swayc_t *focus_output = swayc_active_output(); if (focus_output == output) { set_focused_container(view); } - arrange_windows(workspace, -1, -1); list_add(desktop_shell.lock_surfaces, surface); wl_resource_set_destructor(surface, lock_surface_destructor); } else { |