summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2018-08-25 12:09:42 +1000
committerLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2018-08-25 12:09:42 +1000
commitf4bc25bcc6c822e264938447940b7d75fa84319b (patch)
treeb04befcfad9b7c679b1dec388d168901fc5daf86 /include
parentMerge pull request #2499 from RyanDwyer/refactor-destroy-functions (diff)
downloadsway-f4bc25bcc6c822e264938447940b7d75fa84319b.tar.gz
sway-f4bc25bcc6c822e264938447940b7d75fa84319b.tar.zst
sway-f4bc25bcc6c822e264938447940b7d75fa84319b.zip
Relocate container_move, container_move_to and container_get_in_direction
* container_move is only called from the move command * container_move_to was called from both the move command and the sticky command, but the sticky command can easily not call it * container_get_in_direction is only called from the focus command Moving these functions to their respective commands gives better separation of code and removes bloat from layout.c. These functions will need to be refactored to take advantage of type safety, so separating them will make this easier to refactor. The following static functions have also been moved: * is_parellel * invert_movement * move_offs * container_limit * workspace_rejigger * move_out_of_tabs_stacks * get_swayc_in_output_direction They were all used by the move functions, except for the last one which is used by focus. Other changes: * index_child has been renamed to container_sibling_index, moved to container.c and made public * sway_output_from_wlr has been renamed to output_from_wlr_output, moved to output.c and made public * container_handle_fullscreen_reparent has been made public * sway_dir_to_wlr has been made public No changes have been made to any of the moved functions, other than updating calls to functions that have been renamed.
Diffstat (limited to 'include')
-rw-r--r--include/sway/output.h2
-rw-r--r--include/sway/tree/container.h2
-rw-r--r--include/sway/tree/layout.h15
3 files changed, 11 insertions, 8 deletions
diff --git a/include/sway/output.h b/include/sway/output.h
index 098540fb..651fdfe7 100644
--- a/include/sway/output.h
+++ b/include/sway/output.h
@@ -45,6 +45,8 @@ void output_destroy(struct sway_container *output);
45 45
46void output_begin_destroy(struct sway_container *output); 46void output_begin_destroy(struct sway_container *output);
47 47
48struct sway_container *output_from_wlr_output(struct wlr_output *output);
49
48typedef void (*sway_surface_iterator_func_t)(struct sway_output *output, 50typedef void (*sway_surface_iterator_func_t)(struct sway_output *output,
49 struct wlr_surface *surface, struct wlr_box *box, float rotation, 51 struct wlr_surface *surface, struct wlr_box *box, float rotation,
50 void *user_data); 52 void *user_data);
diff --git a/include/sway/tree/container.h b/include/sway/tree/container.h
index 2cb23d3c..2cedb613 100644
--- a/include/sway/tree/container.h
+++ b/include/sway/tree/container.h
@@ -335,4 +335,6 @@ struct sway_output *container_get_effective_output(struct sway_container *con);
335 335
336void container_discover_outputs(struct sway_container *con); 336void container_discover_outputs(struct sway_container *con);
337 337
338int container_sibling_index(const struct sway_container *child);
339
338#endif 340#endif
diff --git a/include/sway/tree/layout.h b/include/sway/tree/layout.h
index 519189d9..5c834ad2 100644
--- a/include/sway/tree/layout.h
+++ b/include/sway/tree/layout.h
@@ -19,9 +19,15 @@ enum wlr_edges;
19 19
20struct sway_container; 20struct sway_container;
21 21
22void container_handle_fullscreen_reparent(struct sway_container *con,
23 struct sway_container *old_parent);
24
22void container_add_child(struct sway_container *parent, 25void container_add_child(struct sway_container *parent,
23 struct sway_container *child); 26 struct sway_container *child);
24 27
28void container_insert_child(struct sway_container *parent,
29 struct sway_container *child, int i);
30
25struct sway_container *container_add_sibling(struct sway_container *parent, 31struct sway_container *container_add_sibling(struct sway_container *parent,
26 struct sway_container *child); 32 struct sway_container *child);
27 33
@@ -30,18 +36,11 @@ struct sway_container *container_remove_child(struct sway_container *child);
30struct sway_container *container_replace_child(struct sway_container *child, 36struct sway_container *container_replace_child(struct sway_container *child,
31 struct sway_container *new_child); 37 struct sway_container *new_child);
32 38
33void container_move_to(struct sway_container* container, 39bool sway_dir_to_wlr(enum movement_direction dir, enum wlr_direction *out);
34 struct sway_container* destination);
35
36void container_move(struct sway_container *container,
37 enum movement_direction dir, int move_amt);
38 40
39enum sway_container_layout container_get_default_layout( 41enum sway_container_layout container_get_default_layout(
40 struct sway_container *con); 42 struct sway_container *con);
41 43
42struct sway_container *container_get_in_direction(struct sway_container
43 *container, struct sway_seat *seat, enum movement_direction dir);
44
45struct sway_container *container_split(struct sway_container *child, 44struct sway_container *container_split(struct sway_container *child,
46 enum sway_container_layout layout); 45 enum sway_container_layout layout);
47 46