0
0
mirror of https://github.com/obsproject/obs-studio.git synced 2024-09-20 13:08:50 +02:00

linux-xshm: Handle missing screens.

This adds a check to the screen enumeration in order to handle missing
screens by adding them to the list but disabling them.
This commit is contained in:
fryshorts 2014-11-18 22:41:11 +01:00
parent 67ca94f7e4
commit cc56634e91

View File

@ -260,6 +260,7 @@ static bool xshm_server_changed(obs_properties_t *props,
UNUSED_PARAMETER(p);
bool advanced = obs_data_get_bool(settings, "advanced");
int_fast32_t old_screen = obs_data_get_int(settings, "screen");
const char *server = obs_data_get_string(settings, "server");
obs_property_t *screens = obs_properties_get(props, "screen");
@ -296,6 +297,16 @@ static bool xshm_server_changed(obs_properties_t *props,
obs_property_list_add_int(screens, screen_info.array, i);
}
/* handle missing screen */
if (old_screen + 1 > count) {
dstr_printf(&screen_info, "Screen %"PRIuFAST32" (not found)",
old_screen);
size_t index = obs_property_list_add_int(screens,
screen_info.array, old_screen);
obs_property_list_item_disable(screens, index, true);
}
dstr_free(&screen_info);
XCloseDisplay(dpy);