mirror of
https://github.com/swaywm/sway.git
synced 2025-11-16 06:59:49 -05:00
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.
This commit is contained in:
parent
146cc0a441
commit
b4a0363d17
10 changed files with 173 additions and 34 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue