aboutsummaryrefslogtreecommitdiff
path: root/include/focus.h
blob: 602b612229c56b7cd86ed68a014adf4bedebd001 (plain)
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
37
38
39
40
41
42
43
#ifndef _SWAY_FOCUS_H
#define _SWAY_FOCUS_H
enum movement_direction {
	MOVE_LEFT,
	MOVE_RIGHT,
	MOVE_UP,
	MOVE_DOWN,
	MOVE_PARENT
};

#include "container.h"

// focused_container - the container found by following the `focused` pointer
// from a given container to a container with `is_focused` boolean set
// ---
// focused_view - the container found by following the `focused` pointer from a
// given container to a view.
// ---

swayc_t *get_focused_container(swayc_t *parent);
swayc_t *get_focused_view(swayc_t *parent);
swayc_t *get_focused_float(swayc_t *ws);

// a special-case function to get the focused view, regardless
// of whether it's tiled or floating
swayc_t *get_focused_view_include_floating(swayc_t *parent);

bool set_focused_container(swayc_t *container);
bool set_focused_container_for(swayc_t *ancestor, swayc_t *container);

// lock focused container/view. locked by windows with OVERRIDE attribute
// and unlocked when they are destroyed

extern bool locked_container_focus;
extern bool locked_view_focus;

// Prevents wss from being destroyed on focus switch
extern bool suspend_workspace_cleanup;

bool move_focus(enum movement_direction direction);

#endif