aboutsummaryrefslogtreecommitdiffstats
path: root/include/sway/tree/arrange.h
blob: 5823564289240bb620aa1a8524e80569be8d3c43 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#ifndef _SWAY_ARRANGE_H
#define _SWAY_ARRANGE_H
#include "sway/desktop/transaction.h"

struct sway_container;

// Remove gaps around container
void remove_gaps(struct sway_container *c);

// Add gaps around container
void add_gaps(struct sway_container *c);

/**
 * Arrange layout for all the children of the given container, and add them to
 * the given transaction.
 *
 * Use this function if you need to arrange multiple sections of the tree in one
 * transaction.
 *
 * You must set the desired state of the container before calling
 * arrange_windows, then don't change any state-tracked properties in the
 * container until you've called transaction_commit.
 */
void arrange_windows(struct sway_container *container,
		struct sway_transaction *transaction);

/**
 * Arrange layout for the given container and commit the transaction.
 *
 * This function is a wrapper around arrange_windows, and handles creating and
 * committing the transaction for you. Use this function if you're only doing
 * one arrange operation.
 */
void arrange_and_commit(struct sway_container *container);

#endif