aboutsummaryrefslogtreecommitdiffstats
path: root/sway/desktop/output.c
diff options
context:
space:
mode:
authorLibravatar Ivan Molodetskikh <yalterz@gmail.com>2019-10-19 21:26:58 +0300
committerLibravatar Simon Ser <contact@emersion.fr>2019-11-17 20:18:42 +0100
commit76210c141ddb931ea323c3363edc0e1c4431818e (patch)
treed48b7d579879fc66e0066148739266eff5ac6dd3 /sway/desktop/output.c
parentAdd max_render_time to view JSON (diff)
downloadsway-76210c141ddb931ea323c3363edc0e1c4431818e.tar.gz
sway-76210c141ddb931ea323c3363edc0e1c4431818e.tar.zst
sway-76210c141ddb931ea323c3363edc0e1c4431818e.zip
output: check wlr_output in repaint handler
It's possible for the output to be disconnected in just the right moment for wlr_output to be NULL in the repaint handler, causing a crash. This check fixes that crash.
Diffstat (limited to 'sway/desktop/output.c')
-rw-r--r--sway/desktop/output.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sway/desktop/output.c b/sway/desktop/output.c
index 6498198b..dea087c6 100644
--- a/sway/desktop/output.c
+++ b/sway/desktop/output.c
@@ -508,6 +508,10 @@ static bool scan_out_fullscreen_view(struct sway_output *output,
508 508
509int output_repaint_timer_handler(void *data) { 509int output_repaint_timer_handler(void *data) {
510 struct sway_output *output = data; 510 struct sway_output *output = data;
511 if (output->wlr_output == NULL) {
512 return 0;
513 }
514
511 output->wlr_output->block_idle_frame = false; 515 output->wlr_output->block_idle_frame = false;
512 516
513 struct sway_workspace *workspace = output->current.active_workspace; 517 struct sway_workspace *workspace = output->current.active_workspace;