diff --git a/src/screencast/wlr_screencast.c b/src/screencast/wlr_screencast.c index 54c9baf3..8181b2e4 100644 --- a/src/screencast/wlr_screencast.c +++ b/src/screencast/wlr_screencast.c @@ -502,9 +502,18 @@ struct xdpw_wlr_output *wlr_output_chooser_dmenu(struct wl_list *output_list) { struct xdpw_wlr_output *xdpw_wlr_output_chooser(struct wl_list *output_list) { logprint(DEBUG, "wlroots: output chooser called"); - return xdpw_wlr_output_chooser_slurp(output_list); - return xdpw_wlr_output_chooser_dmenu(output_list); - return NULL; + struct xdpw_wlr_output* (*chooser_functions[2])(struct wl_list*) = { + wlr_output_chooser_slurp, + wlr_output_chooser_dmenu, + }; + struct xdpw_wlr_output *output; + for (int i = 0; i<2; i++) { + output = chooser_functions[i](output_list); + if (output != NULL) { + return output; + } + } + return output; } struct xdpw_wlr_output *xdpw_wlr_output_find_by_name(struct wl_list *output_list,