diff options
author | Ryan Dwyer <ryandwyer1@gmail.com> | 2018-08-10 14:10:09 +1000 |
---|---|---|
committer | Ryan Dwyer <ryandwyer1@gmail.com> | 2018-08-12 10:45:54 +1000 |
commit | b4a0363d1721b2ad2d5afb65764ecb575bd55fa4 (patch) | |
tree | f6ec316550cd113040e82a7f0cee0429fff349e5 /include | |
parent | Merge pull request #2452 from janza/position-command-fix-args (diff) | |
download | sway-b4a0363d1721b2ad2d5afb65764ecb575bd55fa4.tar.gz sway-b4a0363d1721b2ad2d5afb65764ecb575bd55fa4.tar.zst sway-b4a0363d1721b2ad2d5afb65764ecb575bd55fa4.zip |
Implement resizing tiled containers via cursor
* The OP_RESIZE seat operation has been renamed to OP_RESIZE_FLOATING,
and OP_RESIZE_TILING has been introduced.
* Similar to the above, seat_begin_resize and handle_resize_motion have
been renamed and tiling variants introduced.
* resize.c's resize_tiled has to be used, so container_resize_tiled has
been introduced in resize.c to allow external code to call it.
Diffstat (limited to 'include')
-rw-r--r-- | include/list.h | 1 | ||||
-rw-r--r-- | include/sway/commands.h | 7 | ||||
-rw-r--r-- | include/sway/input/seat.h | 10 |
3 files changed, 15 insertions, 3 deletions
diff --git a/include/list.h b/include/list.h index 5a0d7d80..7c0e4bd2 100644 --- a/include/list.h +++ b/include/list.h | |||
@@ -20,6 +20,7 @@ void list_qsort(list_t *list, int compare(const void *left, const void *right)); | |||
20 | // Return index for first item in list that returns 0 for given compare | 20 | // Return index for first item in list that returns 0 for given compare |
21 | // function or -1 if none matches. | 21 | // function or -1 if none matches. |
22 | int list_seq_find(list_t *list, int compare(const void *item, const void *cmp_to), const void *cmp_to); | 22 | int list_seq_find(list_t *list, int compare(const void *item, const void *cmp_to), const void *cmp_to); |
23 | int list_find(list_t *list, void *item); | ||
23 | // stable sort since qsort is not guaranteed to be stable | 24 | // stable sort since qsort is not guaranteed to be stable |
24 | void list_stable_sort(list_t *list, int compare(const void *a, const void *b)); | 25 | void list_stable_sort(list_t *list, int compare(const void *a, const void *b)); |
25 | // swap two elements in a list | 26 | // swap two elements in a list |
diff --git a/include/sway/commands.h b/include/sway/commands.h index f83907b2..545b21e6 100644 --- a/include/sway/commands.h +++ b/include/sway/commands.h | |||
@@ -1,6 +1,7 @@ | |||
1 | #ifndef _SWAY_COMMANDS_H | 1 | #ifndef _SWAY_COMMANDS_H |
2 | #define _SWAY_COMMANDS_H | 2 | #define _SWAY_COMMANDS_H |
3 | 3 | ||
4 | #include <wlr/util/edges.h> | ||
4 | #include "config.h" | 5 | #include "config.h" |
5 | 6 | ||
6 | typedef struct cmd_results *sway_cmd(int argc, char **argv); | 7 | typedef struct cmd_results *sway_cmd(int argc, char **argv); |
@@ -84,6 +85,12 @@ char *cmd_results_to_json(struct cmd_results *results); | |||
84 | struct cmd_results *add_color(const char *name, | 85 | struct cmd_results *add_color(const char *name, |
85 | char *buffer, const char *color); | 86 | char *buffer, const char *color); |
86 | 87 | ||
88 | /** | ||
89 | * TODO: Move this function and its dependent functions to container.c. | ||
90 | */ | ||
91 | void container_resize_tiled(struct sway_container *parent, enum wlr_edges edge, | ||
92 | int amount); | ||
93 | |||
87 | sway_cmd cmd_assign; | 94 | sway_cmd cmd_assign; |
88 | sway_cmd cmd_bar; | 95 | sway_cmd cmd_bar; |
89 | sway_cmd cmd_bindcode; | 96 | sway_cmd cmd_bindcode; |
diff --git a/include/sway/input/seat.h b/include/sway/input/seat.h index 92387601..eb4202f3 100644 --- a/include/sway/input/seat.h +++ b/include/sway/input/seat.h | |||
@@ -57,7 +57,8 @@ struct sway_seat { | |||
57 | enum { | 57 | enum { |
58 | OP_NONE, | 58 | OP_NONE, |
59 | OP_MOVE, | 59 | OP_MOVE, |
60 | OP_RESIZE, | 60 | OP_RESIZE_FLOATING, |
61 | OP_RESIZE_TILING, | ||
61 | } operation; | 62 | } operation; |
62 | 63 | ||
63 | struct sway_container *op_container; | 64 | struct sway_container *op_container; |
@@ -159,8 +160,11 @@ void drag_icon_update_position(struct sway_drag_icon *icon); | |||
159 | void seat_begin_move(struct sway_seat *seat, struct sway_container *con, | 160 | void seat_begin_move(struct sway_seat *seat, struct sway_container *con, |
160 | uint32_t button); | 161 | uint32_t button); |
161 | 162 | ||
162 | void seat_begin_resize(struct sway_seat *seat, struct sway_container *con, | 163 | void seat_begin_resize_floating(struct sway_seat *seat, |
163 | uint32_t button, enum wlr_edges edge); | 164 | struct sway_container *con, uint32_t button, enum wlr_edges edge); |
165 | |||
166 | void seat_begin_resize_tiling(struct sway_seat *seat, | ||
167 | struct sway_container *con, uint32_t button, enum wlr_edges edge); | ||
164 | 168 | ||
165 | void seat_end_mouse_operation(struct sway_seat *seat); | 169 | void seat_end_mouse_operation(struct sway_seat *seat); |
166 | 170 | ||