Simplify borderless code and improve resizing behavior and style #367
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request simplifies the code in the
WM_NCCALCSIZE
andWM_NCHITTEST
messages.Not only is it simpler, it also does more by doing less.
Note that while I did not do any changes in that regard, in my experience calls like
DwmExtendFrameIntoClientArea
are not necessary either. However I am not 100% certain about it and it does not seem to do any harm.Windows API for borderless is a truly finicky thing to get right and every little change to get some better behavior out of it tends to break things somewhere else. So I can not guarantee that this has no issues but I've been using a slight variation of this code for quite a while now and did not have any issues.
The following clip is demonstrating the resizing behavior and drop shadows (or lack thereof) of the before (left) and after (right):
2024-11-27.01-11-28.mp4