Zhiyi Zhang (@zhiyi) commented about dlls/winemac.drv/display.c:
if (macdrv_get_displays(&displays, &num_displays)) goto failed;
- display_idx = wcstol(devname + 11, &end, 10) - 1;
- if (display_idx >= num_displays)
- {
macdrv_free_displays(displays);
return FALSE;
- }
- display_id = displays[display_idx].displayID;
- pthread_mutex_lock(&modes_mutex);
- if (mode == 0 || !cached_modes)
- if (mode == 0 || !cached_modes || cached_modes_display_id != display_id)
Although it's not handled previously, we should invalidate cached display modes when 'flags' changes as well.