The Screen change listener logic is coded as part of QCocoaApplicationDelegate. The problem is QCocoaIntegration doesn't initialize a QCocoaApplicationDelegate if we're running in AA_PluginApplication.
This makes sense if we don't want the Qt Menu or the custom delegate methods, but we ALWAYS want to keep the list of QScreens in sync with the screens in OS, otherwise functions like QWindow::setGeometry will fail when pluging in new displays/projects while the application is running.
// ### For AA_MacPluginApplication we don't want to load the menu nib.
// Qt 4 also does not set the application delegate, so that behavior
// is matched here.
|For Gerrit Dashboard: QTBUG-72966|
|253254,2||macOS: Decouple screen property updates from application delegate||5.12||qt/qtbase||Status: MERGED||+2||0|
|254165,1||macOS: Decouple screen property updates from application delegate||5.13||qt/qtbase||Status: ABANDONED||0||0|