display: Fix crash if a monitor has no preferred mode

When a monitor has no current mode set and also no preferred mode we ran
into a crash. Simply select the first mode we can find as a further
fallback.
This commit is contained in:
Benjamin Berg 2019-04-26 18:39:03 +02:00 committed by Benjamin Berg
parent a3fee1068c
commit f75c3a8471

View file

@ -269,6 +269,12 @@ cc_display_settings_rebuild_ui (CcDisplaySettings *self)
current_mode = cc_display_monitor_get_mode (self->selected_output); current_mode = cc_display_monitor_get_mode (self->selected_output);
if (current_mode == NULL) if (current_mode == NULL)
current_mode = cc_display_monitor_get_preferred_mode (self->selected_output); current_mode = cc_display_monitor_get_preferred_mode (self->selected_output);
if (current_mode == NULL) {
modes = cc_display_monitor_get_modes (self->selected_output);
/* Lets assume that a monitor always has at least one mode. */
g_assert (modes);
current_mode = CC_DISPLAY_MODE (modes->data);
}
if (should_show_rotation (self)) if (should_show_rotation (self))
{ {