diff options
Diffstat (limited to 'sway/tree/view.c')
-rw-r--r-- | sway/tree/view.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/sway/tree/view.c b/sway/tree/view.c index c9c82405..98637c33 100644 --- a/sway/tree/view.c +++ b/sway/tree/view.c @@ -141,6 +141,9 @@ static void view_autoconfigure_floating(struct sway_view *view) { view->border_top = view->border_bottom = true; view->border_left = view->border_right = true; + // Don't maximize floating windows + view_set_tiled(view, false); + view_configure(view, lx, ly, width, height); } @@ -248,6 +251,7 @@ void view_autoconfigure(struct sway_view *view) { view->x = x; view->y = y; + view_set_tiled(view, true); view_configure(view, x, y, width, height); } @@ -257,6 +261,13 @@ void view_set_activated(struct sway_view *view, bool activated) { } } +void view_set_tiled(struct sway_view *view, bool tiled) { + view->border = tiled ? config->border : B_NONE; + if (view->impl->set_tiled) { + view->impl->set_tiled(view, tiled); + } +} + // Set fullscreen, but without IPC events or arranging windows. void view_set_fullscreen_raw(struct sway_view *view, bool fullscreen) { if (view->is_fullscreen == fullscreen) { @@ -948,7 +959,7 @@ bool view_is_visible(struct sway_view *view) { // Check view isn't in a tabbed or stacked container on an inactive tab struct sway_seat *seat = input_manager_current_seat(input_manager); struct sway_container *container = view->swayc; - while (container->type != C_WORKSPACE) { + while (container->type != C_WORKSPACE && container->layout != L_FLOATING) { if (container->parent->layout == L_TABBED || container->parent->layout == L_STACKED) { if (seat_get_active_child(seat, container->parent) != container) { |