Documentation appears to wrongly claim that this is available in 10.15,
while in reality it's only 11+. This would lead to a crash on 10.15
since the symbol doesn't exist there.
Adds functions to check and/or request specific macOS permissions
(audio device access, video device access, accessibility access, and
screen capture access).
By default only audio capture, video capture, and accessibility are
requested on launch - the first two have straight-forward "Yes/No"
prompts, the latter requires people to enable OBS in the settings
application (but is required for hotkey functionality, independent
of scene setups).
This uses the SetWindowDisplayAffinity API to hide windows from capture
applications (including OBS). This is not perfect - internal windows
such as context menus, combo box dropdowns, etc will still be displayed.
Even with these limitations, it should help people with single monitors
capture content with less interference from the OBS window.
This implementation is for Windows only but the code is generic enough
that adding other platforms should be straightforward.
macOS looks if the NSUserDefault NSFullScreenMenuItemEverywhere is set
to true, and if it is, it adds its own full screen menu item.
Sets this NSUserDefault to false since it defaults to true.
Applications like Keynote, in full screen mode, cover up OBS.
This change forces windows that have been set as 'always on top' (eg.
projector windows) to sit above Keynote's full screen view by
manipulating the NSWindow's level attribute.
This hides the dock icon when minimizing OBS to the tray on OSX. This
also fixes the bugs with minimizing on startup (and hides the dock icon
correctly in that case as well).
Closesobsproject/obs-studio#1430
All of the monitor discovery logic can be implemented with Qt. This
change removes all the x11 implementations in favor of Qt and removes a
fair amount of platform specific code.