Refactor arrange_windows()

Replaces arrange_windows() with arrange_root(), arrange_output(),
arrange_workspace() and arrange_children_of().

Also makes fullscreen views save and restore their dimensions, which
allows it to preserve any custom resize and is also a requirement for
floating views once they are implemented.
This commit is contained in:
Ryan Dwyer 2018-04-28 11:26:14 +10:00
parent 85ec700206
commit 167c2e1aa9
17 changed files with 328 additions and 283 deletions

View file

@ -1,8 +1,8 @@
#include <string.h>
#include <strings.h>
#include "sway/commands.h"
#include "sway/tree/arrange.h"
#include "sway/tree/container.h"
#include "sway/tree/layout.h"
#include "log.h"
struct cmd_results *cmd_layout(int argc, char **argv) {
@ -48,7 +48,7 @@ struct cmd_results *cmd_layout(int argc, char **argv) {
}
}
arrange_windows(parent, parent->width, parent->height);
arrange_children_of(parent);
return cmd_results_new(CMD_SUCCESS, NULL, NULL);
}

View file

@ -1,6 +1,6 @@
#include "sway/commands.h"
#include "sway/config.h"
#include "sway/tree/layout.h"
#include "sway/tree/arrange.h"
struct cmd_results *cmd_reload(int argc, char **argv) {
struct cmd_results *error = NULL;
@ -12,6 +12,6 @@ struct cmd_results *cmd_reload(int argc, char **argv) {
}
load_swaybars();
arrange_windows(&root_container, -1, -1);
arrange_root();
return cmd_results_new(CMD_SUCCESS, NULL, NULL);
}

View file

@ -6,7 +6,7 @@
#include <strings.h>
#include <wlr/util/log.h>
#include "sway/commands.h"
#include "sway/tree/layout.h"
#include "sway/tree/arrange.h"
#include "log.h"
static const int MIN_SANE_W = 100, MIN_SANE_H = 60;
@ -182,7 +182,7 @@ static void resize_tiled(int amount, enum resize_axis axis) {
}
}
arrange_windows(parent->parent, -1, -1);
arrange_children_of(parent->parent);
}
static void resize(int amount, enum resize_axis axis, enum resize_unit unit) {

View file

@ -1,8 +1,8 @@
#include <string.h>
#include <strings.h>
#include "sway/commands.h"
#include "sway/tree/arrange.h"
#include "sway/tree/container.h"
#include "sway/tree/layout.h"
#include "sway/tree/view.h"
#include "sway/input/input-manager.h"
#include "sway/input/seat.h"
@ -12,7 +12,7 @@ static struct cmd_results *do_split(int layout) {
struct sway_container *con = config->handler_context.current_container;
struct sway_container *parent = container_split(con, layout);
container_create_notify(parent);
arrange_windows(parent, -1, -1);
arrange_children_of(parent);
return cmd_results_new(CMD_SUCCESS, NULL, NULL);
}