mirror of
https://github.com/obsproject/obs-studio.git
synced 2024-07-19 17:49:14 +00:00
UI: Check current affinity before calling SetWindowDisplayAffinity
For some reason, SetWindowDisplayAffinity can make windows visible even when it sets the same value for affinity that GetWindowDisplayAffinity reports. Possibly an API bug as this is probably not a widely used API yet? Fixes a weird window with no size appearing when browsing for files on Windows.
This commit is contained in:
parent
54ca895537
commit
5ed45d06da
|
@ -9964,10 +9964,14 @@ void OBSBasic::SetDisplayAffinity(QWindow *window)
|
|||
#ifdef _WIN32
|
||||
HWND hwnd = (HWND)window->winId();
|
||||
|
||||
if (hideFromCapture)
|
||||
SetWindowDisplayAffinity(hwnd, WDA_EXCLUDEFROMCAPTURE);
|
||||
else
|
||||
SetWindowDisplayAffinity(hwnd, WDA_NONE);
|
||||
DWORD curAffinity;
|
||||
if (GetWindowDisplayAffinity(hwnd, &curAffinity)) {
|
||||
if (hideFromCapture && curAffinity != WDA_EXCLUDEFROMCAPTURE)
|
||||
SetWindowDisplayAffinity(hwnd, WDA_EXCLUDEFROMCAPTURE);
|
||||
else if (curAffinity != WDA_NONE)
|
||||
SetWindowDisplayAffinity(hwnd, WDA_NONE);
|
||||
}
|
||||
|
||||
#else
|
||||
// TODO: Implement for other platforms if possible. Don't forget to
|
||||
// implement SetDisplayAffinitySupported too!
|
||||
|
|
Loading…
Reference in a new issue