aubymori
Sophomore Member
👅👅👅👅👅
Posts: 160
OS: Windows 10 IoT Enterprise LTSC 2021
Theme: Windows 10 Default
CPU: Intel Core i5-9300H
RAM: 8GB
GPU: Intel UHD Graphics 630 / NVIDIA GeForce GTX 1650
|
Post by aubymori on Apr 12, 2024 20:57:48 GMT -8
I want to preface this by saying that thin borders are not a uniquely Windows 10 thing. They were present in Windows Vista/7 with DWM disabled, with seemingly the exact same conditions they have in 10. That being said, I'm creating this thread due to the enigmatic nature of these conditions. There are so many random edge cases where our current understanding of these conditions falls apart completely. Firstly, any window with the WS_THICKFRAME style has thick frames. Duh. Very obvious. Nah, just kidding, there's some conditions where this isn't the case.
As well, in the past, it was believed that whether a window was a dialog (class #32770) or not had relevance to thin/thick borders. However, that does not seem to be the case.
It was also shortly believed to have something to do with the application's manifest, though that is unlikely.
The strangest of them all: compatibility mode. Compatibility mode, when enabled, seemingly gives ALL windows thin borders, regardless of whether or not they are resizable. What makes this even stranger is that when using the Application Verifier utility's HighVersionLie test at all, the application suddenly loses this behavior, while retaining its compatibility mode.
This seems to be an application-based thing, and completely independent of window style, dialogness, and application manifest.
Another thing, interestingly, windows with DWM frames that are not resizable and have a thick border will briefly have a thin border on a style update, until they are moved. This does not happen with non-DWM frames.
|
|
|
Post by TechSalt on Apr 12, 2024 22:35:56 GMT -8
Have you tried playing around with the ACT's Compatibility Administrator? It lets you see all the compatibility fixes a compatibility mode applies. You can also apply compatibility fixes (not modes!) to certain programs.
|
|
|
Post by ephemeralViolette on Apr 13, 2024 10:02:46 GMT -8
I looked into it a little, and it seems that this behaviour occurs since Windows Vista for all applications that are not compiled with a subsystem version 6.00 or later. The default subsystem version of modern Visual Studio versions is probably 6.00, so it isn't a problem. However, other build systems than Microsoft's own could specify a lower subsystem version than is technically required for the program. This appears to be what's going on with Rufus. If I compile any version of Rufus from source with Visual Studio 2022, it defaults to the 6.00 subsystem, and thick frames are used. However, if I were to specify a minimum subsystem version of 5.02 (XP x64), then I get thin frames. It's likely that the official build environment uses MinGW instead of Visual Studio, so no subsystem version gets linked at all, and nobody cared to mess with it because it impact the application in too much of a noticeable manner. So, in the case of programs explicitly compiled for Vista or higher, border padding is included in the dimensions of non-resizable windows. For XP applications (or older), border padding is still ignored, and indeed the application cannot access it at all. But this didn't affect DWM until Windows 10. I'm not entirely sure why it changed to the UxTheme behaviour in Windows 10, but it works exactly the same now. Unfortunately, I'm not sure how DWM gets the actual information. Is it per-window information reported by the process's UxTheme instance? Just a copy of the same code? Regardless, it's really enigmatic. I wonder if the DWM behaviour differs in 6.4.9807
|
|
aubymori
Sophomore Member
👅👅👅👅👅
Posts: 160
OS: Windows 10 IoT Enterprise LTSC 2021
Theme: Windows 10 Default
CPU: Intel Core i5-9300H
RAM: 8GB
GPU: Intel UHD Graphics 630 / NVIDIA GeForce GTX 1650
|
Post by aubymori on Apr 13, 2024 12:27:38 GMT -8
Have you tried playing around with the ACT's Compatibility Administrator? It lets you see all the compatibility fixes a compatibility mode applies. You can also apply compatibility fixes (not modes!) to certain programs. For those wondering, you can get the ACT here.
|
|
aubymori
Sophomore Member
👅👅👅👅👅
Posts: 160
OS: Windows 10 IoT Enterprise LTSC 2021
Theme: Windows 10 Default
CPU: Intel Core i5-9300H
RAM: 8GB
GPU: Intel UHD Graphics 630 / NVIDIA GeForce GTX 1650
|
Post by aubymori on Apr 13, 2024 12:46:16 GMT -8
I wonder if the DWM behaviour differs in 6.4.9807No.
|
|
aubymori
Sophomore Member
👅👅👅👅👅
Posts: 160
OS: Windows 10 IoT Enterprise LTSC 2021
Theme: Windows 10 Default
CPU: Intel Core i5-9300H
RAM: 8GB
GPU: Intel UHD Graphics 630 / NVIDIA GeForce GTX 1650
|
Post by aubymori on Apr 13, 2024 12:47:29 GMT -8
Unfortunately, there are no symbols for 9807's uDWM.
|
|
aubymori
Sophomore Member
👅👅👅👅👅
Posts: 160
OS: Windows 10 IoT Enterprise LTSC 2021
Theme: Windows 10 Default
CPU: Intel Core i5-9300H
RAM: 8GB
GPU: Intel UHD Graphics 630 / NVIDIA GeForce GTX 1650
|
Post by aubymori on Apr 13, 2024 13:28:24 GMT -8
9841 has symbols.
|
|
|
Post by TechSalt on Apr 14, 2024 5:16:20 GMT -8
Have you tried playing around with the ACT's Compatibility Administrator? It lets you see all the compatibility fixes a compatibility mode applies. You can also apply compatibility fixes (not modes!) to certain programs. give my data back when When I get my discord account back.
|
|
aubymori
Sophomore Member
👅👅👅👅👅
Posts: 160
OS: Windows 10 IoT Enterprise LTSC 2021
Theme: Windows 10 Default
CPU: Intel Core i5-9300H
RAM: 8GB
GPU: Intel UHD Graphics 630 / NVIDIA GeForce GTX 1650
|
Post by aubymori on Apr 27, 2024 13:54:38 GMT -8
someone needs to look into this badly both me and ephemeralviolette have looked into it quite a bit and we have found basically nothing of use
|
|