-
Notifications
You must be signed in to change notification settings - Fork 1.2k
ToolTip closes immediately in high DPI #6332
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Is there an estimated date for a version of .NET with a fix for this? |
|
We are trying to push this to 6.0.5; may servicing release. Will keep you posted. |
Co-authored-by: Sam Bent <[email protected]>
|
I picked this PR to my application and I tested the my app for a week. This issue has been fixed and no new issues have been introduced. |
|
I'm also seeing the disappearing Tooltips in my WPF apps (using various versions of .NET from 4 up to 4.8). These have worked for years but stopped recently for some reason. Tooltips continue to work in Winforms and in WPF apps built with .NET5/6. |
Hi, when is the estimated date for 6.0.5 release? |
|
@singhashish-wpf |
|
You can expect it to be out by tomorrow PST.
|
Fixes #6220
Description
In high DPI environment, most tooltips opened by the mouse close immediately.
This is because the SafeArea uses unscaled coordinates, while the current mouse point uses scaled coordinates. In high DPI, these are different, leading to false negatives from the containment test "is the mouse within the SafeArea".
Fixed by using unscaled coordinates for the mouse point. (And incidentally improving the perf by avoiding a lot of unnecessary transformations into, and out of, scaled coordinates.)
Customer Impact
Make ToolTips great again (in high DPI).
Regression
Regression in PR #5931.
Testing
Tested by hand, but thoroughly, in .NET 4.8.1. The automated tests don't cover high DPI, unless you explicitly run them on a machine whose primary monitor is high DPI.
This is a straightforward port of the .NET Fx fix, but should be tested in .NET Core anyway.
Risk