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.
Addresses Issue #4980. This is a port from a servicing fix in .NET 4.7-4.8.
Description
When the mouse moves between windows, WPF tries to avoid "flickering" the thread's input stream (deactivating, then immediately re-activating). The original logic decides that Deactivate is unnecessary when moving from window A to B if
This doesn't work when B supplies its own chrome, and the move ends in the "effective" non-client area. The subsequent mouse events should go to DWM, not to either A or B. Leaving the thread's input stream active causes each event to be delivered both to DWM and to whichever of A or B is topmost at the mouse position.
Fixed by changing the second clause to be
Customer Impact
Potential crash and data loss.
Regression
No. The problem has been lurking since the introduction of WindowChrome in .NET 4.5.
Testing
Ad-hoc around customer scenario.
Standard regression testing.
Risk
Low. Port of 4.8 servicing fix released earlier this year.