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/sway/tree | |
parent | 621d2666b1ac214c63628bbe0ac8f5d6485cb501 (diff) | |
parent | 48b911a4596f50b585a1073d32413236d9defb60 (diff) |
Merge branch 'master' into destroy-output-destroy-empty-workspaces
Diffstat (limited to 'include/sway/tree')
-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 |
4 files changed, 37 insertions, 20 deletions
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); 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. + * Arrange layout for all the children of the given container. */ -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); +void arrange_windows(struct sway_container *container); #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 { struct sway_container *parent; list_t *children; + struct sway_container *focused_inactive_child; + bool focused; + // View properties double view_x, view_y; double view_width, view_height; @@ -144,6 +147,10 @@ struct sway_container { bool destroying; + // If true, indicates that the container has pending state that differs from + // the current. + bool dirty; + struct { struct wl_signal destroy; // Raised after the tree updates, but before arrange_windows @@ -297,4 +304,18 @@ bool container_is_floating(struct sway_container *container); */ void container_get_box(struct sway_container *container, struct wlr_box *box); +/** + * Move a floating container to a new layout-local position. + */ +void container_floating_move_to(struct sway_container *con, + double lx, double ly); + +/** + * Mark a container as dirty if it isn't already. Dirty containers will be + * included in the next transaction then unmarked as dirty. + */ +void container_set_dirty(struct sway_container *container); + +bool container_has_urgent_child(struct sway_container *container); + #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 { void (*set_tiled)(struct sway_view *view, bool tiled); void (*set_fullscreen)(struct sway_view *view, bool fullscreen); bool (*wants_floating)(struct sway_view *view); + bool (*has_client_side_decorations)(struct sway_view *view); void (*for_each_surface)(struct sway_view *view, wlr_surface_iterator_func_t iterator, void *user_data); void (*close)(struct sway_view *view); @@ -68,6 +69,11 @@ struct sway_view { bool border_bottom; bool border_left; bool border_right; + bool using_csd; + + struct timespec urgent; + bool allow_request_urgent; + struct wl_event_source *urgent_timer; bool destroying; @@ -304,4 +310,8 @@ void view_update_marks_textures(struct sway_view *view); */ bool view_is_visible(struct sway_view *view); +void view_set_urgent(struct sway_view *view, bool enable); + +bool view_is_urgent(struct sway_view *view); + #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 { struct sway_view *fullscreen; struct sway_container *floating; list_t *output_priority; + bool urgent; }; extern char *prev_workspace_name; @@ -42,4 +43,7 @@ void workspace_output_add_priority(struct sway_container *workspace, struct sway_container *workspace_output_get_highest_available( struct sway_container *ws, struct sway_container *exclude); + +void workspace_detect_urgent(struct sway_container *workspace); + #endif |