TheJoeFin / Text-Grab

Use OCR in Windows quickly and easily with Text Grab. With optional background process and notifications.
https://www.microsoft.com/en-us/p/text-grab/9mznkqj7sl0b?cid=TextGrabGitHub
MIT License
3.33k stars 223 forks source link

Fix(FullscreenGrab): Fix the issue where TopPanel cannot be displayed immediately after switching between Freeze and Unfreeze and Sub-screen shift move selection doesn't cover full screen #483

Closed ZGGSONG closed 3 months ago

ZGGSONG commented 3 months ago
ZGGSONG commented 3 months ago

because of this change line 599 will need to have a larger check size to see if the click was a single point. I tested using 5px instead of 3px for detecting of it was a small click and that worked.

previous: bool isSmallClick = (regionScaled.Width < 3 || regionScaled.Height < 3);

new: bool isSmallClick = (regionScaled.Width < 5 || regionScaled.Height < 5);

If you want to check it on your end we should be good.

Since the size of regionScaled is calculated by selectBorder through screen scaling, why not directly use the size of selectBorder to determine whether it is a smallclick? m.M11 and m.M22 I looked at it should be the screen scaling right, and the only thing that is obtained is the scaling of the main screen, and this is impossible to determine, may be 100% may be 200% may be 300%, if it is 300% that smallclick judgment is not satisfied which use regionScaled.Width < 5 || regionScaled.Height < 5 (of course, this situation is generally less), so either in the acquisition of the true scaling ratio calculated back to the original size, to determine whether it is the initial size, that in fact, it is equivalent to the size of the direct use of regionScaled to determine whether it is a small Wouldn't clicking be better? like this:

bool isSmallClick = (selectBorder.Width < 3 || selectBorder.Height < 3);

Of course this all assumes that I understand your smallclick as a left click and no drag, if that's not the definition of a small click on your side of the design, then it's fine!

TheJoeFin commented 3 months ago

I like the idea of what you are describing. On thing to consider is that Windows scaling only goes up to 300%, so while calculating the scaling will work, it might be overkill. ☺️ Either way I'm open to the idea.