|
@@ -447,7 +447,6 @@ static bool SetupWindowData(SDL_VideoDevice *_this, SDL_Window *window, HWND hwn
|
|
|
data->videodata = videodata;
|
|
|
data->initializing = true;
|
|
|
data->last_displayID = window->last_displayID;
|
|
|
- data->dwma_border_color = DWMWA_COLOR_DEFAULT;
|
|
|
data->hint_erase_background_mode = GetEraseBackgroundModeHint();
|
|
|
|
|
|
|
|
@@ -1265,42 +1264,30 @@ void WIN_RestoreWindow(SDL_VideoDevice *_this, SDL_Window *window)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-static DWM_WINDOW_CORNER_PREFERENCE WIN_UpdateCornerRoundingForHWND(HWND hwnd, DWM_WINDOW_CORNER_PREFERENCE cornerPref)
|
|
|
+static void WIN_UpdateCornerRoundingForHWND(HWND hwnd, DWM_WINDOW_CORNER_PREFERENCE cornerPref)
|
|
|
{
|
|
|
- DWM_WINDOW_CORNER_PREFERENCE oldPref = DWMWCP_DEFAULT;
|
|
|
-
|
|
|
SDL_SharedObject *handle = SDL_LoadObject("dwmapi.dll");
|
|
|
if (handle) {
|
|
|
- DwmGetWindowAttribute_t DwmGetWindowAttributeFunc = (DwmGetWindowAttribute_t)SDL_LoadFunction(handle, "DwmGetWindowAttribute");
|
|
|
DwmSetWindowAttribute_t DwmSetWindowAttributeFunc = (DwmSetWindowAttribute_t)SDL_LoadFunction(handle, "DwmSetWindowAttribute");
|
|
|
- if (DwmGetWindowAttributeFunc && DwmSetWindowAttributeFunc) {
|
|
|
- DwmGetWindowAttributeFunc(hwnd, DWMWA_WINDOW_CORNER_PREFERENCE, &oldPref, sizeof(oldPref));
|
|
|
+ if (DwmSetWindowAttributeFunc) {
|
|
|
DwmSetWindowAttributeFunc(hwnd, DWMWA_WINDOW_CORNER_PREFERENCE, &cornerPref, sizeof(cornerPref));
|
|
|
}
|
|
|
|
|
|
SDL_UnloadObject(handle);
|
|
|
}
|
|
|
-
|
|
|
- return oldPref;
|
|
|
}
|
|
|
|
|
|
-static COLORREF WIN_UpdateBorderColorForHWND(HWND hwnd, COLORREF colorRef)
|
|
|
+static void WIN_UpdateBorderColorForHWND(HWND hwnd, COLORREF colorRef)
|
|
|
{
|
|
|
- COLORREF oldPref = DWMWA_COLOR_DEFAULT;
|
|
|
-
|
|
|
SDL_SharedObject *handle = SDL_LoadObject("dwmapi.dll");
|
|
|
if (handle) {
|
|
|
- DwmGetWindowAttribute_t DwmGetWindowAttributeFunc = (DwmGetWindowAttribute_t)SDL_LoadFunction(handle, "DwmGetWindowAttribute");
|
|
|
DwmSetWindowAttribute_t DwmSetWindowAttributeFunc = (DwmSetWindowAttribute_t)SDL_LoadFunction(handle, "DwmSetWindowAttribute");
|
|
|
- if (DwmGetWindowAttributeFunc && DwmSetWindowAttributeFunc) {
|
|
|
- DwmGetWindowAttributeFunc(hwnd, DWMWA_BORDER_COLOR, &oldPref, sizeof(oldPref));
|
|
|
+ if (DwmSetWindowAttributeFunc) {
|
|
|
DwmSetWindowAttributeFunc(hwnd, DWMWA_BORDER_COLOR, &colorRef, sizeof(colorRef));
|
|
|
}
|
|
|
|
|
|
SDL_UnloadObject(handle);
|
|
|
}
|
|
|
-
|
|
|
- return oldPref;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -1366,13 +1353,13 @@ SDL_FullscreenResult WIN_SetWindowFullscreen(SDL_VideoDevice *_this, SDL_Window
|
|
|
}
|
|
|
|
|
|
// Disable corner rounding & border color (Windows 11+) so the window fills the full screen
|
|
|
- data->windowed_mode_corner_rounding = WIN_UpdateCornerRoundingForHWND(hwnd, DWMWCP_DONOTROUND);
|
|
|
- data->dwma_border_color = WIN_UpdateBorderColorForHWND(hwnd, DWMWA_COLOR_NONE);
|
|
|
+ WIN_UpdateCornerRoundingForHWND(hwnd, DWMWCP_DONOTROUND);
|
|
|
+ WIN_UpdateBorderColorForHWND(hwnd, DWMWA_COLOR_NONE);
|
|
|
} else {
|
|
|
BOOL menu;
|
|
|
|
|
|
- WIN_UpdateCornerRoundingForHWND(hwnd, (DWM_WINDOW_CORNER_PREFERENCE)data->windowed_mode_corner_rounding);
|
|
|
- WIN_UpdateBorderColorForHWND(hwnd, data->dwma_border_color);
|
|
|
+ WIN_UpdateCornerRoundingForHWND(hwnd, DWMWCP_DEFAULT);
|
|
|
+ WIN_UpdateBorderColorForHWND(hwnd, DWMWA_COLOR_DEFAULT);
|
|
|
|
|
|
/* Restore window-maximization state, as applicable.
|
|
|
Special care is taken to *not* do this if and when we're
|