HydrogenAudio

Hosted Forums => foobar2000 => Support - (fb2k) => Topic started by: Nylem on 2019-04-11 14:20:59

Title: Bug: Tracks are being duplicated when reordering the playlist
Post by: Nylem on 2019-04-11 14:20:59
I was confused why such a serious issue wasn't being reported all the time, since it's been present at least since version 1.3.14 (but probably for much longer, and still present in 1.4.3) and then I realized that it only manifests in a specific configuration.

So basically, the bug is that when I have some songs in the playlist, and I want to change their order by dragging them up/down with the mouse, instead of just moving, they get copied - so basically the track stays at its original position and another instance of it pops up at the target position.

After some googling, I found this: http://taperssection.com/index.php?topic=188091.0 This made me realize that this only happens in a very specific case. Although the poster claims that it happens on the second monitor, I believe it's even more specific, since it doesn't happen on the second monitor of my home computer. However, at work, I have a laptop with a 4K display, so my second monitor has a different scale (100%) than the main one (200%), and that's where the bug manifests - but only on the secondary monitor!

So I believe that this is caused by the program window being rendered at a different scale than the "system default" - the one used for the primary monitor.

Also, the program looks very blurry in this scenario as it's obviously downscaled from the primary monitor's scale, so if that could be improved, that would be great too.

(This is on Windows 10 btw.)
Title: Re: Bug: Tracks are being duplicated when reordering the playlist
Post by: Peter on 2019-04-11 16:20:02
Noted, thanks for reporting.
Title: Re: Bug: Tracks are being duplicated when reordering the playlist
Post by: Peter on 2019-04-12 11:01:22
For future reference if anyone else dealing with this bug in their program finds this-

Win32 GetMessagePos() function returns incorrect values in virtualized DPI-scaled contexts during drag&drop operations. Use GetCursorPos() instead to get valid info.