Merge pull request #906 from OTHGMars/monitorIdFixes

Monitor Id fixes
This commit is contained in:
Brian Roberts 2022-09-29 11:56:13 -05:00 committed by GitHub
commit e7e11b19c3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 5 deletions

View file

@ -646,7 +646,11 @@ void PlatformWindowSDL::_processSDLEvent(SDL_Event &evt)
break;
case SDL_WINDOWEVENT_MOVED:
{
S32 oldDisplay = Con::getIntVariable("pref::Video::deviceId", 0);
_updateMonitorFromMove(evt);
// If display device has changed, make sure window params are compatible with the new device.
if (oldDisplay != Con::getIntVariable("pref::Video::deviceId", 0))
Con::evaluate("configureCanvas();");
break;
}
case SDL_WINDOWEVENT_RESIZED:
@ -672,11 +676,6 @@ void PlatformWindowSDL::_processSDLEvent(SDL_Event &evt)
case SDL_WINDOWEVENT_RESTORED:
Con::setBoolVariable("pref::Video::isMaximized", false);
break;
case SDL_WINDOWEVENT_DISPLAY_CHANGED:
Con::printf("Window moved to display #%d", evt.window.data1);
Con::setIntVariable("pref::Video::deviceId", evt.window.data1);
Con::evaluate("configureCanvas();");
break;
default:
break;

View file

@ -106,6 +106,7 @@ function OptionsMenu::onOpen(%this)
}
%this.unappliedChanges.empty();
$pref::Video::displayDeviceId = "";
OptionsMenuCategoryList.setAsActiveMenuList();
@ -442,6 +443,11 @@ function populateDisplaySettingsList()
%resolution = _makePrettyResString(%resolution);
OptionsMenuSettingsList.addOptionRow("Resolution", "$pref::Video::Resolution", %resolutionList, false, "", true, "Resolution of the game window", %resolution);
// If the requested resolution could not be set, mark the control and pref as changed.
%resControl = OptionsMenuSettingsList.getObject(OptionsMenuSettingsList.getCount()-1);
if (%resControl.getCurrentOption() !$= %resolution)
%resControl.onChange();
}
OptionsMenuSettingsList.addOptionBoolRow("VSync", "$pref::Video::enableVerticalSync", $YesNoList, false, "", true, "", "");