paint.net 4.2.6 alpha build 7258

This build should fix the mouse input and drawing issues that were happening when multiple monitors of different DPI settings were being used. (for example: https://forums.getpaint.net/topic/115494-paintnet-426-alpha-build-7256/?do=findComment&comment=564920)

On a technical note, I’m removing the use of the GetMouseMovePointsEx API because it has been nothing but trouble over the last 6 years. It was supposed to provide smoother mouse input that was less dependent on the performance of the system or app, but that hope has been completely squashed. I’m fed up with it, it’s just a completely broken API and I’ve wasted way too many hours and days of my life debugging it and trying to hunt down any shred of good documentation or sample code for it.

Microsoft broke GetMouseMovePointsEx in Windows 8 and they just haven’t bothered to notice it or fix it (it works great in Windows 7!). On top of that, the newer input system (WM_POINTER) has a method, GetPointerInfoHistory, that’s supposed to provide the same functionality … but it doesn’t! It only ever retrieves the most recent mouse event (history count is always 1). So if you call EnableMouseInPointer you can still never retrieve any mouse movement events that your app wasn’t fast enough to process. Thankfully Paint.NET processes mouse events fast enough that this really isn’t a problem, but someone is just asleep at the wheel over at Microsoft. Thankfully the WM_POINTER system seems to work fantastically well for pens, drawing tablets, and touch screens.

(The above technical rant is provided for the benefit of any other poor developers out there who happen to try and make use of the cursed GetMouseMovePointsEx API and who stumble across this through a Google search. Stay away! It’s broken! Like completely, utterly, maddeningly broken! You’ll go crazy trying to make it work!)

All this means that the "Fluid mouse input" setting has been removed from Settings. It is no longer applicable. We can all forget about it and sleep better now.

To get this update, make sure you have "Also check for pre-release (beta) versions" enabled in Settings, and then click on the Check Now button. (Unfortunately alpha/beta releases are not currently available for the Microsoft Store version of the app.

image.png

You can also download directly using the link over at the forum.

Changes since 4.2.6 alpha build 7256:

  • Fixed erratic and buggy mouse input handling when using multiple monitors with different DPI settings. The use of the GetMouseMovePointsEx API has been removed because it has been totally broken since Windows 8 except in increasingly narrow situations (single monitor, static DPI that never changes, not in a VM, no Remote Desktop, etc.).

6 thoughts on “paint.net 4.2.6 alpha build 7258

  1. chesscanoe says:

    Thanks for the fruits of solving the bad code problem. I recall the frustration using compiled BASIC for a fractal program I was writing in 1985. Even after circumventing my problem, it still took 5 hours less than 3 weeks to run a deep zoom fractal on a modified PC Jr.

    • Rick Brewster says:

      I occasionally try to report bugs and they often just fall into /dev/null. I can’t blame them entirely for not fixing all the bugs I run into and don’t report, but I can’t not blame them either. It’s a ton of work to write up good descriptions of these bugs, and when I usually only get silence in return it doesn’t encourage me to try it again later.

      The WIC team has actually been the most responsive on this lately.

  2. Michael Bramm says:

    Hi Rick,

    I just noticed that the font used for the title gets really small when the file name of the selected image is long. Is this normal so that all of the text can fit to the left of the image (highlighted in blue)?

    Thanks,

    Mike

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.