From 981827ca423838a0fa422b4dd65acb1b8f81349d Mon Sep 17 00:00:00 2001 From: emersion Date: Fri, 30 Mar 2018 00:47:57 -0400 Subject: Cleanup and remove global renderer reference --- include/sway/server.h | 1 - 1 file changed, 1 deletion(-) (limited to 'include/sway') diff --git a/include/sway/server.h b/include/sway/server.h index 25eb64fe..db81932f 100644 --- a/include/sway/server.h +++ b/include/sway/server.h @@ -18,7 +18,6 @@ struct sway_server { const char *socket; struct wlr_backend *backend; - struct wlr_renderer *renderer; struct wlr_compositor *compositor; struct wlr_data_device_manager *data_device_manager; -- cgit v1.2.3 From 69eb021767d8cf57b08699c7e330fe8c52ca2764 Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Fri, 30 Mar 2018 10:43:55 -0400 Subject: Add default_orientation command --- include/sway/commands.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include/sway') diff --git a/include/sway/commands.h b/include/sway/commands.h index 1291d5fb..66f097ea 100644 --- a/include/sway/commands.h +++ b/include/sway/commands.h @@ -95,6 +95,7 @@ sway_cmd cmd_commands; sway_cmd cmd_debuglog; sway_cmd cmd_default_border; sway_cmd cmd_default_floating_border; +sway_cmd cmd_default_orientation; sway_cmd cmd_exec; sway_cmd cmd_exec_always; sway_cmd cmd_exit; @@ -125,7 +126,6 @@ sway_cmd cmd_move; sway_cmd cmd_new_float; sway_cmd cmd_new_window; sway_cmd cmd_no_focus; -sway_cmd cmd_orientation; sway_cmd cmd_output; sway_cmd cmd_permit; sway_cmd cmd_reject; -- cgit v1.2.3 From 01af34391267e91461a4ab7a1234dd58f45d2c93 Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Fri, 30 Mar 2018 10:31:21 -0400 Subject: Destroy empty workspaces when moving away --- include/sway/tree/container.h | 8 ++++++++ include/sway/tree/layout.h | 3 +++ 2 files changed, 11 insertions(+) (limited to 'include/sway') diff --git a/include/sway/tree/container.h b/include/sway/tree/container.h index 3bb497db..24e8468e 100644 --- a/include/sway/tree/container.h +++ b/include/sway/tree/container.h @@ -99,8 +99,13 @@ struct sway_container *container_view_create( struct sway_container *container_output_destroy(struct sway_container *output); +struct sway_container *container_workspace_destroy( + struct sway_container *workspace); + struct sway_container *container_view_destroy(struct sway_container *view); +void container_destroy(struct sway_container *cont); + struct sway_container *container_set_layout(struct sway_container *container, enum sway_container_layout layout); @@ -140,4 +145,7 @@ void container_for_each_descendant_bfs(struct sway_container *container, void container_for_each_descendant_dfs(struct sway_container *container, void (*f)(struct sway_container *container, void *data), void *data); +bool container_has_anscestor(struct sway_container *descendant, + struct sway_container *anscestor); + #endif diff --git a/include/sway/tree/layout.h b/include/sway/tree/layout.h index ad52bdb0..8239366b 100644 --- a/include/sway/tree/layout.h +++ b/include/sway/tree/layout.h @@ -39,6 +39,9 @@ struct sway_container *container_add_sibling(struct sway_container *parent, struct sway_container *container_remove_child(struct sway_container *child); +void container_move_to(struct sway_container* container, + struct sway_container* destination); + enum sway_container_layout container_get_default_layout(struct sway_container *output); void container_sort_workspaces(struct sway_container *output); -- cgit v1.2.3 From cf09ea184b891594331240eb860f28975dcb8b8c Mon Sep 17 00:00:00 2001 From: emersion Date: Fri, 30 Mar 2018 13:34:25 -0400 Subject: Use the new map/unmap events for xwayland views --- include/sway/tree/view.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'include/sway') diff --git a/include/sway/tree/view.h b/include/sway/tree/view.h index e5f53f4e..54f6d90e 100644 --- a/include/sway/tree/view.h +++ b/include/sway/tree/view.h @@ -28,8 +28,8 @@ struct sway_xwayland_surface { struct wl_listener request_resize; struct wl_listener request_maximize; struct wl_listener request_configure; - struct wl_listener unmap_notify; - struct wl_listener map_notify; + struct wl_listener unmap; + struct wl_listener map; struct wl_listener destroy; int pending_width, pending_height; -- cgit v1.2.3 From 49379dd0fc0758f89d7f4fa4fb5b08c7f4c26ae6 Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Fri, 30 Mar 2018 11:58:17 -0400 Subject: Fix workspace deletion edge cases --- include/sway/tree/container.h | 2 +- include/sway/tree/layout.h | 2 ++ include/sway/tree/workspace.h | 2 ++ 3 files changed, 5 insertions(+), 1 deletion(-) (limited to 'include/sway') diff --git a/include/sway/tree/container.h b/include/sway/tree/container.h index 24e8468e..6aa66da0 100644 --- a/include/sway/tree/container.h +++ b/include/sway/tree/container.h @@ -104,7 +104,7 @@ struct sway_container *container_workspace_destroy( struct sway_container *container_view_destroy(struct sway_container *view); -void container_destroy(struct sway_container *cont); +struct sway_container *container_destroy(struct sway_container *cont); struct sway_container *container_set_layout(struct sway_container *container, enum sway_container_layout layout); diff --git a/include/sway/tree/layout.h b/include/sway/tree/layout.h index 8239366b..0a904c4b 100644 --- a/include/sway/tree/layout.h +++ b/include/sway/tree/layout.h @@ -39,6 +39,8 @@ struct sway_container *container_add_sibling(struct sway_container *parent, struct sway_container *container_remove_child(struct sway_container *child); +struct sway_container *container_reap_empty(struct sway_container *container); + void container_move_to(struct sway_container* container, struct sway_container* destination); diff --git a/include/sway/tree/workspace.h b/include/sway/tree/workspace.h index d73b29c1..4e4c3450 100644 --- a/include/sway/tree/workspace.h +++ b/include/sway/tree/workspace.h @@ -23,4 +23,6 @@ struct sway_container *workspace_output_prev(struct sway_container *current); struct sway_container *workspace_prev(struct sway_container *current); +bool workspace_is_visible(struct sway_container *ws); + #endif -- cgit v1.2.3 From a776ecbb860608e0f75430a53ea75a6ed19ac746 Mon Sep 17 00:00:00 2001 From: emersion Date: Fri, 30 Mar 2018 13:18:50 -0400 Subject: Add lite damage tracking This skips the renderer if nothing has changed, and renders everything otherwise. --- include/sway/output.h | 14 ++++++++++++-- include/sway/server.h | 1 - include/sway/tree/view.h | 4 ++++ 3 files changed, 16 insertions(+), 3 deletions(-) (limited to 'include/sway') diff --git a/include/sway/output.h b/include/sway/output.h index 6fb79987..b4980cd8 100644 --- a/include/sway/output.h +++ b/include/sway/output.h @@ -5,6 +5,7 @@ #include #include #include +#include "sway/tree/view.h" struct sway_server; struct sway_container; @@ -13,17 +14,26 @@ struct sway_output { struct wlr_output *wlr_output; struct sway_container *swayc; struct sway_server *server; - struct timespec last_frame; struct wl_list layers[4]; // sway_layer_surface::link struct wlr_box usable_area; - struct wl_listener frame; + struct timespec last_frame; + struct wlr_output_damage *damage; + struct wl_listener destroy; struct wl_listener mode; struct wl_listener transform; + struct wl_listener damage_destroy; + struct wl_listener damage_frame; + pid_t bg_pid; }; +void output_damage_whole(struct sway_output *output); + +void output_damage_whole_view(struct sway_output *output, + struct sway_view *view); + #endif diff --git a/include/sway/server.h b/include/sway/server.h index db81932f..61f21cdb 100644 --- a/include/sway/server.h +++ b/include/sway/server.h @@ -25,7 +25,6 @@ struct sway_server { struct sway_input_manager *input; struct wl_listener new_output; - struct wl_listener output_frame; struct wlr_layer_shell *layer_shell; struct wl_listener layer_shell_surface; diff --git a/include/sway/tree/view.h b/include/sway/tree/view.h index 54f6d90e..526a8485 100644 --- a/include/sway/tree/view.h +++ b/include/sway/tree/view.h @@ -113,4 +113,8 @@ void view_close(struct sway_view *view); void view_update_outputs(struct sway_view *view, const struct wlr_box *before); +void view_damage_whole(struct sway_view *view); + +void view_damage_from(struct sway_view *view); + #endif -- cgit v1.2.3 From 139f80b0f03cd772e408604203df81f285ca3f67 Mon Sep 17 00:00:00 2001 From: emersion Date: Fri, 30 Mar 2018 17:43:43 -0400 Subject: Handle map/unmap events in xdg-shell-v6 --- include/sway/tree/view.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'include/sway') diff --git a/include/sway/tree/view.h b/include/sway/tree/view.h index 526a8485..3965d2b7 100644 --- a/include/sway/tree/view.h +++ b/include/sway/tree/view.h @@ -15,6 +15,8 @@ struct sway_xdg_surface_v6 { struct wl_listener request_move; struct wl_listener request_resize; struct wl_listener request_maximize; + struct wl_listener map; + struct wl_listener unmap; struct wl_listener destroy; int pending_width, pending_height; @@ -28,8 +30,8 @@ struct sway_xwayland_surface { struct wl_listener request_resize; struct wl_listener request_maximize; struct wl_listener request_configure; - struct wl_listener unmap; struct wl_listener map; + struct wl_listener unmap; struct wl_listener destroy; int pending_width, pending_height; -- cgit v1.2.3