diff options
author | Ryan Dwyer <RyanDwyer@users.noreply.github.com> | 2018-07-18 09:32:03 +1000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-07-18 09:32:03 +1000 |
commit | 8ce7e3b44eea0a270ecc35a9da2ae801aaf6bce1 (patch) | |
tree | 6badffb0c6ee33b4e23e914c4c9f9b39a625b5f3 /include | |
parent | Destroy empty workspace when destroying its output (diff) | |
parent | Merge pull request #2281 from pvsr/X11_click (diff) | |
download | sway-8ce7e3b44eea0a270ecc35a9da2ae801aaf6bce1.tar.gz sway-8ce7e3b44eea0a270ecc35a9da2ae801aaf6bce1.tar.zst sway-8ce7e3b44eea0a270ecc35a9da2ae801aaf6bce1.zip |
Merge branch 'master' into destroy-output-destroy-empty-workspaces
Diffstat (limited to 'include')
-rw-r--r-- | include/ipc.h | 5 | ||||
-rw-r--r-- | include/list.h | 2 | ||||
-rw-r--r-- | include/log.h | 10 | ||||
-rw-r--r-- | include/sway/commands.h | 4 | ||||
-rw-r--r-- | include/sway/config.h | 11 | ||||
-rw-r--r-- | include/sway/criteria.h | 5 | ||||
-rw-r--r-- | include/sway/debug.h | 8 | ||||
-rw-r--r-- | include/sway/desktop.h | 4 | ||||
-rw-r--r-- | include/sway/desktop/transaction.h | 33 | ||||
-rw-r--r-- | include/sway/input/seat.h | 11 | ||||
-rw-r--r-- | include/sway/server.h | 5 | ||||
-rw-r--r-- | include/sway/tree/arrange.h | 22 | ||||
-rw-r--r-- | include/sway/tree/container.h | 21 | ||||
-rw-r--r-- | include/sway/tree/view.h | 10 | ||||
-rw-r--r-- | include/sway/tree/workspace.h | 4 | ||||
-rw-r--r-- | include/swaybar/bar.h | 15 | ||||
-rw-r--r-- | include/swaybar/status_line.h | 4 | ||||
-rw-r--r-- | include/swaylock/swaylock.h | 24 |
18 files changed, 126 insertions, 72 deletions
diff --git a/include/ipc.h b/include/ipc.h index 8172c782..0010718b 100644 --- a/include/ipc.h +++ b/include/ipc.h | |||
@@ -13,11 +13,12 @@ enum ipc_command_type { | |||
13 | IPC_GET_MARKS = 5, | 13 | IPC_GET_MARKS = 5, |
14 | IPC_GET_BAR_CONFIG = 6, | 14 | IPC_GET_BAR_CONFIG = 6, |
15 | IPC_GET_VERSION = 7, | 15 | IPC_GET_VERSION = 7, |
16 | IPC_GET_BINDING_MODES = 8, | ||
17 | IPC_GET_CONFIG = 9, | ||
16 | 18 | ||
17 | // sway-specific command types | 19 | // sway-specific command types |
18 | IPC_GET_INPUTS = 100, | 20 | IPC_GET_INPUTS = 100, |
19 | IPC_GET_CLIPBOARD = 101, | 21 | IPC_GET_SEATS = 101, |
20 | IPC_GET_SEATS = 102, | ||
21 | 22 | ||
22 | // Events sent from sway to clients. Events have the highest bits set. | 23 | // Events sent from sway to clients. Events have the highest bits set. |
23 | IPC_EVENT_WORKSPACE = ((1<<31) | 0), | 24 | IPC_EVENT_WORKSPACE = ((1<<31) | 0), |
diff --git a/include/list.h b/include/list.h index 7eead4ac..5a0d7d80 100644 --- a/include/list.h +++ b/include/list.h | |||
@@ -24,4 +24,6 @@ int list_seq_find(list_t *list, int compare(const void *item, const void *cmp_to | |||
24 | void list_stable_sort(list_t *list, int compare(const void *a, const void *b)); | 24 | void list_stable_sort(list_t *list, int compare(const void *a, const void *b)); |
25 | // swap two elements in a list | 25 | // swap two elements in a list |
26 | void list_swap(list_t *list, int src, int dest); | 26 | void list_swap(list_t *list, int src, int dest); |
27 | // move item to end of list | ||
28 | void list_move_to_end(list_t *list, void *item); | ||
27 | #endif | 29 | #endif |
diff --git a/include/log.h b/include/log.h index a9748127..dd526143 100644 --- a/include/log.h +++ b/include/log.h | |||
@@ -3,13 +3,19 @@ | |||
3 | #include <stdbool.h> | 3 | #include <stdbool.h> |
4 | #include <wlr/util/log.h> | 4 | #include <wlr/util/log.h> |
5 | 5 | ||
6 | #ifdef __GNUC__ | ||
7 | #define ATTRIB_PRINTF(start, end) __attribute__((format(printf, start, end))) | ||
8 | #else | ||
9 | #define ATTRIB_PRINTF(start, end) | ||
10 | #endif | ||
11 | |||
6 | void _sway_abort(const char *filename, ...) ATTRIB_PRINTF(1, 2); | 12 | void _sway_abort(const char *filename, ...) ATTRIB_PRINTF(1, 2); |
7 | #define sway_abort(FMT, ...) \ | 13 | #define sway_abort(FMT, ...) \ |
8 | _sway_abort("[%s:%d] " FMT, wlr_strip_path(__FILE__), __LINE__, ##__VA_ARGS__) | 14 | _sway_abort("[%s:%d] " FMT, _wlr_strip_path(__FILE__), __LINE__, ##__VA_ARGS__) |
9 | 15 | ||
10 | bool _sway_assert(bool condition, const char* format, ...) ATTRIB_PRINTF(2, 3); | 16 | bool _sway_assert(bool condition, const char* format, ...) ATTRIB_PRINTF(2, 3); |
11 | #define sway_assert(COND, FMT, ...) \ | 17 | #define sway_assert(COND, FMT, ...) \ |
12 | _sway_assert(COND, "[%s:%d] %s:" FMT, wlr_strip_path(__FILE__), __LINE__, __PRETTY_FUNCTION__, ##__VA_ARGS__) | 18 | _sway_assert(COND, "[%s:%d] %s:" FMT, _wlr_strip_path(__FILE__), __LINE__, __PRETTY_FUNCTION__, ##__VA_ARGS__) |
13 | 19 | ||
14 | void error_handler(int sig); | 20 | void error_handler(int sig); |
15 | 21 | ||
diff --git a/include/sway/commands.h b/include/sway/commands.h index 6d17144a..1e93e2a3 100644 --- a/include/sway/commands.h +++ b/include/sway/commands.h | |||
@@ -95,7 +95,6 @@ sway_cmd cmd_client_unfocused; | |||
95 | sway_cmd cmd_client_urgent; | 95 | sway_cmd cmd_client_urgent; |
96 | sway_cmd cmd_client_placeholder; | 96 | sway_cmd cmd_client_placeholder; |
97 | sway_cmd cmd_client_background; | 97 | sway_cmd cmd_client_background; |
98 | sway_cmd cmd_clipboard; | ||
99 | sway_cmd cmd_commands; | 98 | sway_cmd cmd_commands; |
100 | sway_cmd cmd_debuglog; | 99 | sway_cmd cmd_debuglog; |
101 | sway_cmd cmd_default_border; | 100 | sway_cmd cmd_default_border; |
@@ -153,6 +152,7 @@ sway_cmd cmd_swaybg_command; | |||
153 | sway_cmd cmd_swap; | 152 | sway_cmd cmd_swap; |
154 | sway_cmd cmd_title_format; | 153 | sway_cmd cmd_title_format; |
155 | sway_cmd cmd_unmark; | 154 | sway_cmd cmd_unmark; |
155 | sway_cmd cmd_urgent; | ||
156 | sway_cmd cmd_workspace; | 156 | sway_cmd cmd_workspace; |
157 | sway_cmd cmd_ws_auto_back_and_forth; | 157 | sway_cmd cmd_ws_auto_back_and_forth; |
158 | sway_cmd cmd_workspace_layout; | 158 | sway_cmd cmd_workspace_layout; |
@@ -208,8 +208,10 @@ sway_cmd input_cmd_natural_scroll; | |||
208 | sway_cmd input_cmd_pointer_accel; | 208 | sway_cmd input_cmd_pointer_accel; |
209 | sway_cmd input_cmd_repeat_delay; | 209 | sway_cmd input_cmd_repeat_delay; |
210 | sway_cmd input_cmd_repeat_rate; | 210 | sway_cmd input_cmd_repeat_rate; |
211 | sway_cmd input_cmd_scroll_button; | ||
211 | sway_cmd input_cmd_scroll_method; | 212 | sway_cmd input_cmd_scroll_method; |
212 | sway_cmd input_cmd_tap; | 213 | sway_cmd input_cmd_tap; |
214 | sway_cmd input_cmd_tap_button_map; | ||
213 | sway_cmd input_cmd_xkb_layout; | 215 | sway_cmd input_cmd_xkb_layout; |
214 | sway_cmd input_cmd_xkb_model; | 216 | sway_cmd input_cmd_xkb_model; |
215 | sway_cmd input_cmd_xkb_options; | 217 | sway_cmd input_cmd_xkb_options; |
diff --git a/include/sway/config.h b/include/sway/config.h index ac668c24..f660a269 100644 --- a/include/sway/config.h +++ b/include/sway/config.h | |||
@@ -75,9 +75,11 @@ struct input_config { | |||
75 | float pointer_accel; | 75 | float pointer_accel; |
76 | int repeat_delay; | 76 | int repeat_delay; |
77 | int repeat_rate; | 77 | int repeat_rate; |
78 | int scroll_button; | ||
78 | int scroll_method; | 79 | int scroll_method; |
79 | int send_events; | 80 | int send_events; |
80 | int tap; | 81 | int tap; |
82 | int tap_button_map; | ||
81 | 83 | ||
82 | char *xkb_layout; | 84 | char *xkb_layout; |
83 | char *xkb_model; | 85 | char *xkb_model; |
@@ -271,11 +273,10 @@ enum ipc_feature { | |||
271 | IPC_FEATURE_EVENT_WINDOW = 2048, | 273 | IPC_FEATURE_EVENT_WINDOW = 2048, |
272 | IPC_FEATURE_EVENT_BINDING = 4096, | 274 | IPC_FEATURE_EVENT_BINDING = 4096, |
273 | IPC_FEATURE_EVENT_INPUT = 8192, | 275 | IPC_FEATURE_EVENT_INPUT = 8192, |
274 | IPC_FEATURE_GET_CLIPBOARD = 16384, | 276 | IPC_FEATURE_GET_SEATS = 16384, |
275 | IPC_FEATURE_GET_SEATS = 32768, | ||
276 | 277 | ||
277 | IPC_FEATURE_ALL_COMMANDS = | 278 | IPC_FEATURE_ALL_COMMANDS = |
278 | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 16384 | 32768, | 279 | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 16384, |
279 | IPC_FEATURE_ALL_EVENTS = 256 | 512 | 1024 | 2048 | 4096 | 8192, | 280 | IPC_FEATURE_ALL_EVENTS = 256 | 512 | 1024 | 2048 | 4096 | 8192, |
280 | 281 | ||
281 | IPC_FEATURE_ALL = IPC_FEATURE_ALL_COMMANDS | IPC_FEATURE_ALL_EVENTS, | 282 | IPC_FEATURE_ALL = IPC_FEATURE_ALL_COMMANDS | IPC_FEATURE_ALL_EVENTS, |
@@ -341,6 +342,7 @@ struct sway_config { | |||
341 | int gaps_outer; | 342 | int gaps_outer; |
342 | 343 | ||
343 | list_t *config_chain; | 344 | list_t *config_chain; |
345 | const char *current_config_path; | ||
344 | const char *current_config; | 346 | const char *current_config; |
345 | 347 | ||
346 | enum sway_container_border border; | 348 | enum sway_container_border border; |
@@ -496,7 +498,4 @@ void config_update_font_height(bool recalculate); | |||
496 | /* Global config singleton. */ | 498 | /* Global config singleton. */ |
497 | extern struct sway_config *config; | 499 | extern struct sway_config *config; |
498 | 500 | ||
499 | /* Config file currently being read */ | ||
500 | extern const char *current_config_path; | ||
501 | |||
502 | #endif | 501 | #endif |
diff --git a/include/sway/criteria.h b/include/sway/criteria.h index bd3ca0ac..6a8337c5 100644 --- a/include/sway/criteria.h +++ b/include/sway/criteria.h | |||
@@ -6,9 +6,10 @@ | |||
6 | #include "tree/view.h" | 6 | #include "tree/view.h" |
7 | 7 | ||
8 | enum criteria_type { | 8 | enum criteria_type { |
9 | CT_COMMAND = 1 << 0, | 9 | CT_COMMAND = 1 << 0, |
10 | CT_ASSIGN_OUTPUT = 1 << 1, | 10 | CT_ASSIGN_OUTPUT = 1 << 1, |
11 | CT_ASSIGN_WORKSPACE = 1 << 2, | 11 | CT_ASSIGN_WORKSPACE = 1 << 2, |
12 | CT_NO_FOCUS = 1 << 3, | ||
12 | }; | 13 | }; |
13 | 14 | ||
14 | struct criteria { | 15 | struct criteria { |
diff --git a/include/sway/debug.h b/include/sway/debug.h index 2430d319..38d4eccd 100644 --- a/include/sway/debug.h +++ b/include/sway/debug.h | |||
@@ -1,7 +1,15 @@ | |||
1 | #ifndef SWAY_DEBUG_H | 1 | #ifndef SWAY_DEBUG_H |
2 | #define SWAY_DEBUG_H | 2 | #define SWAY_DEBUG_H |
3 | 3 | ||
4 | // Tree | ||
4 | extern bool enable_debug_tree; | 5 | extern bool enable_debug_tree; |
5 | void update_debug_tree(); | 6 | void update_debug_tree(); |
6 | 7 | ||
8 | // Damage | ||
9 | extern const char *damage_debug; | ||
10 | |||
11 | // Transactions | ||
12 | extern int txn_timeout_ms; | ||
13 | extern bool txn_debug; | ||
14 | |||
7 | #endif | 15 | #endif |
diff --git a/include/sway/desktop.h b/include/sway/desktop.h index f1ad759a..348fb187 100644 --- a/include/sway/desktop.h +++ b/include/sway/desktop.h | |||
@@ -1,4 +1,8 @@ | |||
1 | #include <wlr/types/wlr_surface.h> | 1 | #include <wlr/types/wlr_surface.h> |
2 | 2 | ||
3 | struct sway_container; | ||
4 | |||
3 | void desktop_damage_surface(struct wlr_surface *surface, double lx, double ly, | 5 | void desktop_damage_surface(struct wlr_surface *surface, double lx, double ly, |
4 | bool whole); | 6 | bool whole); |
7 | |||
8 | void desktop_damage_whole_container(struct sway_container *con); | ||
diff --git a/include/sway/desktop/transaction.h b/include/sway/desktop/transaction.h index 7ab80eb8..cee4afed 100644 --- a/include/sway/desktop/transaction.h +++ b/include/sway/desktop/transaction.h | |||
@@ -6,34 +6,25 @@ | |||
6 | /** | 6 | /** |
7 | * Transactions enable us to perform atomic layout updates. | 7 | * Transactions enable us to perform atomic layout updates. |
8 | * | 8 | * |
9 | * When we want to make adjustments to the layout, we create a transaction. | 9 | * A transaction contains a list of containers and their new state. |
10 | * A transaction contains a list of affected containers and their new state. | ||
11 | * A state might contain a new size, or new border settings, or new parent/child | 10 | * A state might contain a new size, or new border settings, or new parent/child |
12 | * relationships. | 11 | * relationships. |
13 | * | 12 | * |
14 | * Calling transaction_commit() makes sway notify of all the affected clients | 13 | * Committing a transaction makes sway notify of all the affected clients with |
15 | * with their new sizes. We then wait for all the views to respond with their | 14 | * their new sizes. We then wait for all the views to respond with their new |
16 | * new surface sizes. When all are ready, or when a timeout has passed, we apply | 15 | * surface sizes. When all are ready, or when a timeout has passed, we apply the |
17 | * the updates all at the same time. | 16 | * updates all at the same time. |
18 | */ | 17 | * |
19 | 18 | * When we want to make adjustments to the layout, we change the pending state | |
20 | struct sway_transaction; | 19 | * in containers, mark them as dirty and call transaction_commit_dirty(). This |
21 | 20 | * create and commits a transaction from the dirty containers. | |
22 | /** | ||
23 | * Create a new transaction. | ||
24 | */ | ||
25 | struct sway_transaction *transaction_create(void); | ||
26 | |||
27 | /** | ||
28 | * Add a container's pending state to the transaction. | ||
29 | */ | 21 | */ |
30 | void transaction_add_container(struct sway_transaction *transaction, | ||
31 | struct sway_container *container); | ||
32 | 22 | ||
33 | /** | 23 | /** |
34 | * Submit a transaction to the client views for configuration. | 24 | * Find all dirty containers, create and commit a transaction containing them, |
25 | * and unmark them as dirty. | ||
35 | */ | 26 | */ |
36 | void transaction_commit(struct sway_transaction *transaction); | 27 | void transaction_commit_dirty(void); |
37 | 28 | ||
38 | /** | 29 | /** |
39 | * Notify the transaction system that a view is ready for the new layout. | 30 | * Notify the transaction system that a view is ready for the new layout. |
diff --git a/include/sway/input/seat.h b/include/sway/input/seat.h index 0e440701..1f7792ba 100644 --- a/include/sway/input/seat.h +++ b/include/sway/input/seat.h | |||
@@ -119,17 +119,6 @@ struct sway_container *seat_get_active_child(struct sway_seat *seat, | |||
119 | struct sway_container *container); | 119 | struct sway_container *container); |
120 | 120 | ||
121 | /** | 121 | /** |
122 | * Return the immediate child of container which was most recently focused, with | ||
123 | * fallback to selecting the child in the parent's `current` (rendered) children | ||
124 | * list. | ||
125 | * | ||
126 | * This is useful for when a tabbed container and its children are destroyed but | ||
127 | * still being rendered, and we have to render an appropriate child. | ||
128 | */ | ||
129 | struct sway_container *seat_get_active_current_child(struct sway_seat *seat, | ||
130 | struct sway_container *container); | ||
131 | |||
132 | /** | ||
133 | * Iterate over the focus-inactive children of the container calling the | 122 | * Iterate over the focus-inactive children of the container calling the |
134 | * function on each. | 123 | * function on each. |
135 | */ | 124 | */ |
diff --git a/include/sway/server.h b/include/sway/server.h index a3e32898..a017d1c4 100644 --- a/include/sway/server.h +++ b/include/sway/server.h | |||
@@ -47,10 +47,7 @@ struct sway_server { | |||
47 | bool debug_txn_timings; | 47 | bool debug_txn_timings; |
48 | 48 | ||
49 | list_t *transactions; | 49 | list_t *transactions; |
50 | 50 | list_t *dirty_containers; | |
51 | // When a view is being destroyed and is waiting for a transaction to | ||
52 | // complete it will be stored here. | ||
53 | list_t *destroying_containers; | ||
54 | }; | 51 | }; |
55 | 52 | ||
56 | struct sway_server server; | 53 | struct sway_server server; |
diff --git a/include/sway/tree/arrange.h b/include/sway/tree/arrange.h index 58235642..d6abcc81 100644 --- a/include/sway/tree/arrange.h +++ b/include/sway/tree/arrange.h | |||
@@ -11,26 +11,8 @@ void remove_gaps(struct sway_container *c); | |||
11 | void add_gaps(struct sway_container *c); | 11 | void add_gaps(struct sway_container *c); |
12 | 12 | ||
13 | /** | 13 | /** |
14 | * Arrange layout for all the children of the given container, and add them to | 14 | * Arrange layout for all the children of the given container. |
15 | * the given transaction. | ||
16 | * | ||
17 | * Use this function if you need to arrange multiple sections of the tree in one | ||
18 | * transaction. | ||
19 | * | ||
20 | * You must set the desired state of the container before calling | ||
21 | * arrange_windows, then don't change any state-tracked properties in the | ||
22 | * container until you've called transaction_commit. | ||
23 | */ | 15 | */ |
24 | void arrange_windows(struct sway_container *container, | 16 | void arrange_windows(struct sway_container *container); |
25 | struct sway_transaction *transaction); | ||
26 | |||
27 | /** | ||
28 | * Arrange layout for the given container and commit the transaction. | ||
29 | * | ||
30 | * This function is a wrapper around arrange_windows, and handles creating and | ||
31 | * committing the transaction for you. Use this function if you're only doing | ||
32 | * one arrange operation. | ||
33 | */ | ||
34 | void arrange_and_commit(struct sway_container *container); | ||
35 | 17 | ||
36 | #endif | 18 | #endif |
diff --git a/include/sway/tree/container.h b/include/sway/tree/container.h index 728daa84..ca7a3288 100644 --- a/include/sway/tree/container.h +++ b/include/sway/tree/container.h | |||
@@ -68,6 +68,9 @@ struct sway_container_state { | |||
68 | struct sway_container *parent; | 68 | struct sway_container *parent; |
69 | list_t *children; | 69 | list_t *children; |
70 | 70 | ||
71 | struct sway_container *focused_inactive_child; | ||
72 | bool focused; | ||
73 | |||
71 | // View properties | 74 | // View properties |
72 | double view_x, view_y; | 75 | double view_x, view_y; |
73 | double view_width, view_height; | 76 | double view_width, view_height; |
@@ -144,6 +147,10 @@ struct sway_container { | |||
144 | 147 | ||
145 | bool destroying; | 148 | bool destroying; |
146 | 149 | ||
150 | // If true, indicates that the container has pending state that differs from | ||
151 | // the current. | ||
152 | bool dirty; | ||
153 | |||
147 | struct { | 154 | struct { |
148 | struct wl_signal destroy; | 155 | struct wl_signal destroy; |
149 | // Raised after the tree updates, but before arrange_windows | 156 | // Raised after the tree updates, but before arrange_windows |
@@ -297,4 +304,18 @@ bool container_is_floating(struct sway_container *container); | |||
297 | */ | 304 | */ |
298 | void container_get_box(struct sway_container *container, struct wlr_box *box); | 305 | void container_get_box(struct sway_container *container, struct wlr_box *box); |
299 | 306 | ||
307 | /** | ||
308 | * Move a floating container to a new layout-local position. | ||
309 | */ | ||
310 | void container_floating_move_to(struct sway_container *con, | ||
311 | double lx, double ly); | ||
312 | |||
313 | /** | ||
314 | * Mark a container as dirty if it isn't already. Dirty containers will be | ||
315 | * included in the next transaction then unmarked as dirty. | ||
316 | */ | ||
317 | void container_set_dirty(struct sway_container *container); | ||
318 | |||
319 | bool container_has_urgent_child(struct sway_container *container); | ||
320 | |||
300 | #endif | 321 | #endif |
diff --git a/include/sway/tree/view.h b/include/sway/tree/view.h index 7dc8ac46..e270f851 100644 --- a/include/sway/tree/view.h +++ b/include/sway/tree/view.h | |||
@@ -35,6 +35,7 @@ struct sway_view_impl { | |||
35 | void (*set_tiled)(struct sway_view *view, bool tiled); | 35 | void (*set_tiled)(struct sway_view *view, bool tiled); |
36 | void (*set_fullscreen)(struct sway_view *view, bool fullscreen); | 36 | void (*set_fullscreen)(struct sway_view *view, bool fullscreen); |
37 | bool (*wants_floating)(struct sway_view *view); | 37 | bool (*wants_floating)(struct sway_view *view); |
38 | bool (*has_client_side_decorations)(struct sway_view *view); | ||
38 | void (*for_each_surface)(struct sway_view *view, | 39 | void (*for_each_surface)(struct sway_view *view, |
39 | wlr_surface_iterator_func_t iterator, void *user_data); | 40 | wlr_surface_iterator_func_t iterator, void *user_data); |
40 | void (*close)(struct sway_view *view); | 41 | void (*close)(struct sway_view *view); |
@@ -68,6 +69,11 @@ struct sway_view { | |||
68 | bool border_bottom; | 69 | bool border_bottom; |
69 | bool border_left; | 70 | bool border_left; |
70 | bool border_right; | 71 | bool border_right; |
72 | bool using_csd; | ||
73 | |||
74 | struct timespec urgent; | ||
75 | bool allow_request_urgent; | ||
76 | struct wl_event_source *urgent_timer; | ||
71 | 77 | ||
72 | bool destroying; | 78 | bool destroying; |
73 | 79 | ||
@@ -304,4 +310,8 @@ void view_update_marks_textures(struct sway_view *view); | |||
304 | */ | 310 | */ |
305 | bool view_is_visible(struct sway_view *view); | 311 | bool view_is_visible(struct sway_view *view); |
306 | 312 | ||
313 | void view_set_urgent(struct sway_view *view, bool enable); | ||
314 | |||
315 | bool view_is_urgent(struct sway_view *view); | ||
316 | |||
307 | #endif | 317 | #endif |
diff --git a/include/sway/tree/workspace.h b/include/sway/tree/workspace.h index c72a4ac0..bc95317a 100644 --- a/include/sway/tree/workspace.h +++ b/include/sway/tree/workspace.h | |||
@@ -10,6 +10,7 @@ struct sway_workspace { | |||
10 | struct sway_view *fullscreen; | 10 | struct sway_view *fullscreen; |
11 | struct sway_container *floating; | 11 | struct sway_container *floating; |
12 | list_t *output_priority; | 12 | list_t *output_priority; |
13 | bool urgent; | ||
13 | }; | 14 | }; |
14 | 15 | ||
15 | extern char *prev_workspace_name; | 16 | extern char *prev_workspace_name; |
@@ -42,4 +43,7 @@ void workspace_output_add_priority(struct sway_container *workspace, | |||
42 | 43 | ||
43 | struct sway_container *workspace_output_get_highest_available( | 44 | struct sway_container *workspace_output_get_highest_available( |
44 | struct sway_container *ws, struct sway_container *exclude); | 45 | struct sway_container *ws, struct sway_container *exclude); |
46 | |||
47 | void workspace_detect_urgent(struct sway_container *workspace); | ||
48 | |||
45 | #endif | 49 | #endif |
diff --git a/include/swaybar/bar.h b/include/swaybar/bar.h index af478f33..f1ff25b2 100644 --- a/include/swaybar/bar.h +++ b/include/swaybar/bar.h | |||
@@ -16,11 +16,24 @@ struct swaybar_pointer { | |||
16 | int x, y; | 16 | int x, y; |
17 | }; | 17 | }; |
18 | 18 | ||
19 | enum x11_button { | ||
20 | NONE, | ||
21 | LEFT, | ||
22 | MIDDLE, | ||
23 | RIGHT, | ||
24 | SCROLL_UP, | ||
25 | SCROLL_DOWN, | ||
26 | SCROLL_LEFT, | ||
27 | SCROLL_RIGHT, | ||
28 | BACK, | ||
29 | FORWARD, | ||
30 | }; | ||
31 | |||
19 | struct swaybar_hotspot { | 32 | struct swaybar_hotspot { |
20 | struct wl_list link; | 33 | struct wl_list link; |
21 | int x, y, width, height; | 34 | int x, y, width, height; |
22 | void (*callback)(struct swaybar_output *output, | 35 | void (*callback)(struct swaybar_output *output, |
23 | int x, int y, uint32_t button, void *data); | 36 | int x, int y, enum x11_button button, void *data); |
24 | void (*destroy)(void *data); | 37 | void (*destroy)(void *data); |
25 | void *data; | 38 | void *data; |
26 | }; | 39 | }; |
diff --git a/include/swaybar/status_line.h b/include/swaybar/status_line.h index bf12a842..2eaf8140 100644 --- a/include/swaybar/status_line.h +++ b/include/swaybar/status_line.h | |||
@@ -72,7 +72,9 @@ bool status_handle_readable(struct status_line *status); | |||
72 | void status_line_free(struct status_line *status); | 72 | void status_line_free(struct status_line *status); |
73 | bool i3bar_handle_readable(struct status_line *status); | 73 | bool i3bar_handle_readable(struct status_line *status); |
74 | void i3bar_block_send_click(struct status_line *status, | 74 | void i3bar_block_send_click(struct status_line *status, |
75 | struct i3bar_block *block, int x, int y, uint32_t button); | 75 | struct i3bar_block *block, int x, int y, enum x11_button button); |
76 | void i3bar_block_free(struct i3bar_block *block); | 76 | void i3bar_block_free(struct i3bar_block *block); |
77 | enum x11_button wl_button_to_x11_button(uint32_t button); | ||
78 | enum x11_button wl_axis_to_x11_button(uint32_t axis, wl_fixed_t value); | ||
77 | 79 | ||
78 | #endif | 80 | #endif |
diff --git a/include/swaylock/swaylock.h b/include/swaylock/swaylock.h index cf80a6ba..950cfaaf 100644 --- a/include/swaylock/swaylock.h +++ b/include/swaylock/swaylock.h | |||
@@ -19,9 +19,31 @@ enum auth_state { | |||
19 | AUTH_STATE_INVALID, | 19 | AUTH_STATE_INVALID, |
20 | }; | 20 | }; |
21 | 21 | ||
22 | struct swaylock_colorset { | ||
23 | uint32_t input; | ||
24 | uint32_t cleared; | ||
25 | uint32_t verifying; | ||
26 | uint32_t wrong; | ||
27 | }; | ||
28 | |||
29 | struct swaylock_colors { | ||
30 | uint32_t background; | ||
31 | uint32_t bs_highlight; | ||
32 | uint32_t key_highlight; | ||
33 | uint32_t separator; | ||
34 | struct swaylock_colorset inside; | ||
35 | struct swaylock_colorset line; | ||
36 | struct swaylock_colorset ring; | ||
37 | struct swaylock_colorset text; | ||
38 | }; | ||
39 | |||
22 | struct swaylock_args { | 40 | struct swaylock_args { |
23 | uint32_t color; | 41 | struct swaylock_colors colors; |
24 | enum background_mode mode; | 42 | enum background_mode mode; |
43 | char *font; | ||
44 | uint32_t radius; | ||
45 | uint32_t thickness; | ||
46 | bool ignore_empty; | ||
25 | bool show_indicator; | 47 | bool show_indicator; |
26 | bool daemonize; | 48 | bool daemonize; |
27 | }; | 49 | }; |