fixed MT#4846: make sure, that we always get a win_monitor_info* in winwindow_video_window_monitor() [Oliver Stöneberg]

This commit is contained in:
Oliver Stöneberg 2012-12-29 11:27:56 +00:00
parent 368caac5a2
commit f48344c62e

View File

@ -834,15 +834,19 @@ void winwindow_video_window_update(win_window_info *window)
win_monitor_info *winwindow_video_window_monitor(win_window_info *window, const RECT *proposed)
{
win_monitor_info *monitor;
win_monitor_info *monitor = NULL;
// in window mode, find the nearest
if (!window->fullscreen)
{
if (proposed != NULL)
monitor = winvideo_monitor_from_handle(MonitorFromRect(proposed, MONITOR_DEFAULTTONEAREST));
else
monitor = winvideo_monitor_from_handle(MonitorFromWindow(window->hwnd, MONITOR_DEFAULTTONEAREST));
// result can be NULL when e.g. the color scheme changes
do
{
if (proposed != NULL)
monitor = winvideo_monitor_from_handle(MonitorFromRect(proposed, MONITOR_DEFAULTTONEAREST));
else
monitor = winvideo_monitor_from_handle(MonitorFromWindow(window->hwnd, MONITOR_DEFAULTTONEAREST));
} while (monitor == NULL);
}
// in full screen, just use the configured monitor