Merge pull request #2095 from emersion/fullscreen-damage-only-visible

Only send frame to visible surfaces when fullscreened
This commit is contained in:
emersion 2018-06-05 11:18:52 +01:00 committed by GitHub
commit 0f71547032
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 21 additions and 11 deletions

View File

@ -988,20 +988,30 @@ static void send_frame_done(struct sway_output *output, struct timespec *when) {
.when = when,
};
send_frame_done_layer(&data,
&output->layers[ZWLR_LAYER_SHELL_V1_LAYER_BACKGROUND]);
send_frame_done_layer(&data,
&output->layers[ZWLR_LAYER_SHELL_V1_LAYER_BOTTOM]);
struct sway_container *workspace = output_get_active_workspace(output);
send_frame_done_container(&data, workspace);
send_frame_done_container(&data, workspace->sway_workspace->floating);
if (workspace->sway_workspace->fullscreen) {
send_frame_done_container_iterator(
workspace->sway_workspace->fullscreen->swayc, &data);
send_frame_done_unmanaged(&data,
&root_container.sway_root->xwayland_unmanaged);
if (workspace->sway_workspace->fullscreen->type == SWAY_VIEW_XWAYLAND) {
send_frame_done_unmanaged(&data,
&root_container.sway_root->xwayland_unmanaged);
}
} else {
send_frame_done_layer(&data,
&output->layers[ZWLR_LAYER_SHELL_V1_LAYER_BACKGROUND]);
send_frame_done_layer(&data,
&output->layers[ZWLR_LAYER_SHELL_V1_LAYER_BOTTOM]);
send_frame_done_container(&data, workspace);
send_frame_done_container(&data, workspace->sway_workspace->floating);
send_frame_done_unmanaged(&data,
&root_container.sway_root->xwayland_unmanaged);
send_frame_done_layer(&data,
&output->layers[ZWLR_LAYER_SHELL_V1_LAYER_TOP]);
}
send_frame_done_layer(&data,
&output->layers[ZWLR_LAYER_SHELL_V1_LAYER_TOP]);
send_frame_done_layer(&data,
&output->layers[ZWLR_LAYER_SHELL_V1_LAYER_OVERLAY]);
}