summaryrefslogtreecommitdiffstats
path: root/include/sway/tree
diff options
context:
space:
mode:
authorLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2018-04-28 11:26:14 +1000
committerLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2018-04-28 11:26:14 +1000
commit167c2e1aa99aa8011e169b0fb61c47953cc9a5f6 (patch)
treef312cac40cd542964f62d8b7ed53d44bb13dea37 /include/sway/tree
parentMerge pull request #1866 from ggreer/swaybar-cmd-sh (diff)
downloadsway-167c2e1aa99aa8011e169b0fb61c47953cc9a5f6.tar.gz
sway-167c2e1aa99aa8011e169b0fb61c47953cc9a5f6.tar.zst
sway-167c2e1aa99aa8011e169b0fb61c47953cc9a5f6.zip
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.
Diffstat (limited to 'include/sway/tree')
-rw-r--r--include/sway/tree/arrange.h20
-rw-r--r--include/sway/tree/container.h1
-rw-r--r--include/sway/tree/layout.h3
-rw-r--r--include/sway/tree/view.h2
4 files changed, 23 insertions, 3 deletions
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 @@
1#ifndef _SWAY_ARRANGE_H
2#define _SWAY_ARRANGE_H
3
4struct sway_container;
5
6void arrange_windows(struct sway_container *container);
7
8// Determine the root container's geometry, then iterate to everything below
9void arrange_root(void);
10
11// Determine the output's geometry, then iterate to everything below
12void arrange_output(struct sway_container *output);
13
14// Determine the workspace's geometry, then iterate to everything below
15void arrange_workspace(struct sway_container *workspace);
16
17// Arrange layout for all the children of the given workspace/container
18void arrange_children_of(struct sway_container *parent);
19
20#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 {
75 double x, y; 75 double x, y;
76 // does not include borders or gaps. 76 // does not include borders or gaps.
77 double width, height; 77 double width, height;
78 double saved_width, saved_height;
78 79
79 list_t *children; 80 list_t *children;
80 81
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(
60 60
61void container_sort_workspaces(struct sway_container *output); 61void container_sort_workspaces(struct sway_container *output);
62 62
63void arrange_windows(struct sway_container *container,
64 double width, double height);
65
66struct sway_container *container_get_in_direction(struct sway_container 63struct sway_container *container_get_in_direction(struct sway_container
67 *container, struct sway_seat *seat, enum movement_direction dir); 64 *container, struct sway_seat *seat, enum movement_direction dir);
68 65
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,
162 162
163void view_set_activated(struct sway_view *view, bool activated); 163void view_set_activated(struct sway_view *view, bool activated);
164 164
165void view_set_fullscreen_raw(struct sway_view *view, bool fullscreen);
166
165void view_set_fullscreen(struct sway_view *view, bool fullscreen); 167void view_set_fullscreen(struct sway_view *view, bool fullscreen);
166 168
167void view_close(struct sway_view *view); 169void view_close(struct sway_view *view);