From 167c2e1aa99aa8011e169b0fb61c47953cc9a5f6 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sat, 28 Apr 2018 11:26:14 +1000 Subject: 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. --- include/sway/tree/arrange.h | 20 ++++++++++++++++++++ include/sway/tree/container.h | 1 + include/sway/tree/layout.h | 3 --- include/sway/tree/view.h | 2 ++ 4 files changed, 23 insertions(+), 3 deletions(-) create mode 100644 include/sway/tree/arrange.h (limited to 'include') diff --git a/include/sway/tree/arrange.h b/include/sway/tree/arrange.h new file mode 100644 index 00000000..7ccb88a2 --- /dev/null +++ b/include/sway/tree/arrange.h @@ -0,0 +1,20 @@ +#ifndef _SWAY_ARRANGE_H +#define _SWAY_ARRANGE_H + +struct sway_container; + +void arrange_windows(struct sway_container *container); + +// Determine the root container's geometry, then iterate to everything below +void arrange_root(void); + +// Determine the output's geometry, then iterate to everything below +void arrange_output(struct sway_container *output); + +// Determine the workspace's geometry, then iterate to everything below +void arrange_workspace(struct sway_container *workspace); + +// Arrange layout for all the children of the given workspace/container +void arrange_children_of(struct sway_container *parent); + +#endif diff --git a/include/sway/tree/container.h b/include/sway/tree/container.h index 5f3afdc1..9c921fc4 100644 --- a/include/sway/tree/container.h +++ b/include/sway/tree/container.h @@ -75,6 +75,7 @@ struct sway_container { double x, y; // does not include borders or gaps. double width, height; + double saved_width, saved_height; list_t *children; diff --git a/include/sway/tree/layout.h b/include/sway/tree/layout.h index 327134a5..cc999871 100644 --- a/include/sway/tree/layout.h +++ b/include/sway/tree/layout.h @@ -60,9 +60,6 @@ enum sway_container_layout container_get_default_layout( void container_sort_workspaces(struct sway_container *output); -void arrange_windows(struct sway_container *container, - double width, double height); - struct sway_container *container_get_in_direction(struct sway_container *container, struct sway_seat *seat, enum movement_direction dir); diff --git a/include/sway/tree/view.h b/include/sway/tree/view.h index 7237ea2a..a4ad9971 100644 --- a/include/sway/tree/view.h +++ b/include/sway/tree/view.h @@ -162,6 +162,8 @@ void view_configure(struct sway_view *view, double ox, double oy, int width, void view_set_activated(struct sway_view *view, bool activated); +void view_set_fullscreen_raw(struct sway_view *view, bool fullscreen); + void view_set_fullscreen(struct sway_view *view, bool fullscreen); void view_close(struct sway_view *view); -- cgit v1.2.3