aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorRyan Dwyer <ryandwyer1@gmail.com>2018-08-10 14:10:09 +1000
committerRyan Dwyer <ryandwyer1@gmail.com>2018-08-12 10:45:54 +1000
commitb4a0363d1721b2ad2d5afb65764ecb575bd55fa4 (patch)
treef6ec316550cd113040e82a7f0cee0429fff349e5 /include
parent146cc0a441f6901eeba7df691098f71d0de73a53 (diff)
downloadsway-b4a0363d1721b2ad2d5afb65764ecb575bd55fa4.tar.xz
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));
// Return index for first item in list that returns 0 for given compare
// function or -1 if none matches.
int list_seq_find(list_t *list, int compare(const void *item, const void *cmp_to), const void *cmp_to);
+int list_find(list_t *list, void *item);
// stable sort since qsort is not guaranteed to be stable
void list_stable_sort(list_t *list, int compare(const void *a, const void *b));
// 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 @@
#ifndef _SWAY_COMMANDS_H
#define _SWAY_COMMANDS_H
+#include <wlr/util/edges.h>
#include "config.h"
typedef struct cmd_results *sway_cmd(int argc, char **argv);
@@ -84,6 +85,12 @@ char *cmd_results_to_json(struct cmd_results *results);
struct cmd_results *add_color(const char *name,
char *buffer, const char *color);
+/**
+ * TODO: Move this function and its dependent functions to container.c.
+ */
+void container_resize_tiled(struct sway_container *parent, enum wlr_edges edge,
+ int amount);
+
sway_cmd cmd_assign;
sway_cmd cmd_bar;
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 {
enum {
OP_NONE,
OP_MOVE,
- OP_RESIZE,
+ OP_RESIZE_FLOATING,
+ OP_RESIZE_TILING,
} operation;
struct sway_container *op_container;
@@ -159,8 +160,11 @@ void drag_icon_update_position(struct sway_drag_icon *icon);
void seat_begin_move(struct sway_seat *seat, struct sway_container *con,
uint32_t button);
-void seat_begin_resize(struct sway_seat *seat, struct sway_container *con,
- uint32_t button, enum wlr_edges edge);
+void seat_begin_resize_floating(struct sway_seat *seat,
+ struct sway_container *con, uint32_t button, enum wlr_edges edge);
+
+void seat_begin_resize_tiling(struct sway_seat *seat,
+ struct sway_container *con, uint32_t button, enum wlr_edges edge);
void seat_end_mouse_operation(struct sway_seat *seat);