summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2018-08-10 14:10:09 +1000
committerLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2018-08-12 10:45:54 +1000
commitb4a0363d1721b2ad2d5afb65764ecb575bd55fa4 (patch)
treef6ec316550cd113040e82a7f0cee0429fff349e5 /include
parentMerge pull request #2452 from janza/position-command-fix-args (diff)
downloadsway-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.h1
-rw-r--r--include/sway/commands.h7
-rw-r--r--include/sway/input/seat.h10
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.
22int list_seq_find(list_t *list, int compare(const void *item, const void *cmp_to), const void *cmp_to); 22int list_seq_find(list_t *list, int compare(const void *item, const void *cmp_to), const void *cmp_to);
23int 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
24void list_stable_sort(list_t *list, int compare(const void *a, const void *b)); 25void 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
6typedef struct cmd_results *sway_cmd(int argc, char **argv); 7typedef struct cmd_results *sway_cmd(int argc, char **argv);
@@ -84,6 +85,12 @@ char *cmd_results_to_json(struct cmd_results *results);
84struct cmd_results *add_color(const char *name, 85struct 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 */
91void container_resize_tiled(struct sway_container *parent, enum wlr_edges edge,
92 int amount);
93
87sway_cmd cmd_assign; 94sway_cmd cmd_assign;
88sway_cmd cmd_bar; 95sway_cmd cmd_bar;
89sway_cmd cmd_bindcode; 96sway_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);
159void seat_begin_move(struct sway_seat *seat, struct sway_container *con, 160void seat_begin_move(struct sway_seat *seat, struct sway_container *con,
160 uint32_t button); 161 uint32_t button);
161 162
162void seat_begin_resize(struct sway_seat *seat, struct sway_container *con, 163void 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
166void seat_begin_resize_tiling(struct sway_seat *seat,
167 struct sway_container *con, uint32_t button, enum wlr_edges edge);
164 168
165void seat_end_mouse_operation(struct sway_seat *seat); 169void seat_end_mouse_operation(struct sway_seat *seat);
166 170