diff options
Diffstat (limited to 'sway/handlers.c')
-rw-r--r-- | sway/handlers.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/sway/handlers.c b/sway/handlers.c index b38f05a6..53dbeb87 100644 --- a/sway/handlers.c +++ b/sway/handlers.c @@ -198,11 +198,12 @@ static bool handle_view_created(wlc_handle handle) { if (pid) { // using newview as a temp storage location here, // rather than adding yet another workspace var - if ((newview = workspace_for_pid(pid))) { + newview = workspace_for_pid(pid); + if (newview && newview != current_ws) { focused = newview; - newview = NULL; return_to_workspace = true; } + newview = NULL; } } @@ -234,8 +235,12 @@ static bool handle_view_created(wlc_handle handle) { switch (wlc_view_get_type(handle)) { // regular view created regularly case 0: - newview = new_view(focused, handle); - wlc_view_set_state(handle, WLC_BIT_MAXIMIZED, true); + if (parent) { + newview = new_floating_view(handle); + } else { + newview = new_view(focused, handle); + wlc_view_set_state(handle, WLC_BIT_MAXIMIZED, true); + } break; // Dmenu keeps viewfocus, but others with this flag don't, for now simulate |