aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar emersion <contact@emersion.fr>2018-06-02 20:55:34 +0100
committerLibravatar emersion <contact@emersion.fr>2018-06-02 20:56:33 +0100
commit34bdf25bb5af5f36568e0af8b6a95f2c93552d07 (patch)
treeadcf09ecb1e91b9488401c141155fbb2fc79a7ba
parentMerge pull request #2094 from emersion/damage-schedule (diff)
downloadsway-34bdf25bb5af5f36568e0af8b6a95f2c93552d07.tar.gz
sway-34bdf25bb5af5f36568e0af8b6a95f2c93552d07.tar.zst
sway-34bdf25bb5af5f36568e0af8b6a95f2c93552d07.zip
Only send frame to visible surfaces when fullscreened
-rw-r--r--sway/desktop/output.c32
1 files changed, 21 insertions, 11 deletions
diff --git a/sway/desktop/output.c b/sway/desktop/output.c
index 964cfe00..a9ff9782 100644
--- a/sway/desktop/output.c
+++ b/sway/desktop/output.c
@@ -969,20 +969,30 @@ static void send_frame_done(struct sway_output *output, struct timespec *when) {
969 .when = when, 969 .when = when,
970 }; 970 };
971 971
972 send_frame_done_layer(&data,
973 &output->layers[ZWLR_LAYER_SHELL_V1_LAYER_BACKGROUND]);
974 send_frame_done_layer(&data,
975 &output->layers[ZWLR_LAYER_SHELL_V1_LAYER_BOTTOM]);
976
977 struct sway_container *workspace = output_get_active_workspace(output); 972 struct sway_container *workspace = output_get_active_workspace(output);
978 send_frame_done_container(&data, workspace); 973 if (workspace->sway_workspace->fullscreen) {
979 send_frame_done_container(&data, workspace->sway_workspace->floating); 974 send_frame_done_container_iterator(
975 workspace->sway_workspace->fullscreen->swayc, &data);
976
977 if (workspace->sway_workspace->fullscreen->type == SWAY_VIEW_XWAYLAND) {
978 send_frame_done_unmanaged(&data,
979 &root_container.sway_root->xwayland_unmanaged);
980 }
981 } else {
982 send_frame_done_layer(&data,
983 &output->layers[ZWLR_LAYER_SHELL_V1_LAYER_BACKGROUND]);
984 send_frame_done_layer(&data,
985 &output->layers[ZWLR_LAYER_SHELL_V1_LAYER_BOTTOM]);
980 986
981 send_frame_done_unmanaged(&data, 987 send_frame_done_container(&data, workspace);
982 &root_container.sway_root->xwayland_unmanaged); 988 send_frame_done_container(&data, workspace->sway_workspace->floating);
989
990 send_frame_done_unmanaged(&data,
991 &root_container.sway_root->xwayland_unmanaged);
992 send_frame_done_layer(&data,
993 &output->layers[ZWLR_LAYER_SHELL_V1_LAYER_TOP]);
994 }
983 995
984 send_frame_done_layer(&data,
985 &output->layers[ZWLR_LAYER_SHELL_V1_LAYER_TOP]);
986 send_frame_done_layer(&data, 996 send_frame_done_layer(&data,
987 &output->layers[ZWLR_LAYER_SHELL_V1_LAYER_OVERLAY]); 997 &output->layers[ZWLR_LAYER_SHELL_V1_LAYER_OVERLAY]);
988} 998}