sway

i3-compatible Wayland compositor
git clone https://git.awy.one/sway
Log | Files | Refs | README | LICENSE

commit 1132efe42e8086216c7bab6b405d09a22231dde5
parent 71db8de4be53fc9ec2fab5ed89dd2646468fa15f
Author: Drew DeVault <sir@cmpwn.com>
Date:   Fri,  4 May 2018 08:41:16 -0400

Send frame done to floating views

Also centers them on the screen when initially floated

In the future we'll need a more sophisticated solution than that

Diffstat:
Minclude/sway/tree/container.h | 1-
Msway/commands/floating.c | 13+++++++++++++
Msway/debug-tree.c | 2--
Msway/ipc-json.c | 2--
4 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/include/sway/tree/container.h b/include/sway/tree/container.h @@ -40,7 +40,6 @@ enum sway_container_layout { L_VERT, L_STACKED, L_TABBED, - L_FLOATING, }; enum sway_container_border { diff --git a/sway/commands/floating.c b/sway/commands/floating.c @@ -3,9 +3,11 @@ #include "sway/commands.h" #include "sway/input/seat.h" #include "sway/ipc-server.h" +#include "sway/output.h" #include "sway/tree/arrange.h" #include "sway/tree/container.h" #include "sway/tree/layout.h" +#include "sway/tree/view.h" #include "list.h" struct cmd_results *cmd_floating(int argc, char **argv) { @@ -38,6 +40,17 @@ struct cmd_results *cmd_floating(int argc, char **argv) { container, C_WORKSPACE); container_remove_child(container); container_add_floating(workspace, container); + + struct sway_output *output = workspace->parent->sway_output; + output_damage_whole_container(output, container); + // Reset to sane size and position + container->width = 640; + container->height = 480; + container->x = workspace->width / 2 - container->width / 2; + container->y = workspace->height / 2 - container->height / 2; + view_autoconfigure(container->sway_view); + output_damage_whole_container(output, container); + seat_set_focus(config->handler_context.seat, container); arrange_workspace(workspace); } else if (container->is_floating && !wants_floating) { diff --git a/sway/debug-tree.c b/sway/debug-tree.c @@ -22,8 +22,6 @@ static const char *layout_to_str(enum sway_container_layout layout) { return "L_STACKED"; case L_TABBED: return "L_TABBED"; - case L_FLOATING: - return "L_FLOATING"; case L_NONE: default: return "L_NONE"; diff --git a/sway/ipc-json.c b/sway/ipc-json.c @@ -21,8 +21,6 @@ static const char *ipc_json_layout_description(enum sway_container_layout l) { return "tabbed"; case L_STACKED: return "stacked"; - case L_FLOATING: - return "floating"; case L_NONE: break; }