RetroAchievements / RAIntegration

The DLL responsible to integrate emulators with RetroAchievements.org
https://retroachievements.org
MIT License
98 stars 23 forks source link

Double Input in Memory Bookmark value after invalid input #982

Closed laytonloztew closed 1 year ago

laytonloztew commented 1 year ago

After an invalid input into a memory bookmark value, input is doubled until a valid value is entered. This occurs when I input an invalid value and click outside the input box on a window (Game, Memory Bookmarks, etc.)
This doesn't occur if I press enter to confirm the invalid value. This also doesn't occur if I click on the desktop. How I interact with the error popup doesn't seem to affect the behavior.

Can also see the column headers disappear when resizing the Memory Bookmarks window, reappear on mouse hover.

Beta 1.2 dll

https://user-images.githubusercontent.com/12983268/221969236-996d1c61-75d2-4c79-a41e-4025a47d389f.mp4

CasualPokePlayer commented 1 year ago

This likely an unintentional breakage due to https://github.com/RetroAchievements/RAIntegration/pull/961.

One workaround perhaps is to just "always" do the WM_CHAR forcing, then squash the "normal" WM_CHAR messages. Another is perhaps to hook onto the WM_CHAR messages, then if pInfo->bForceWmChar is set, unset it and ignore the message.

Jamiras commented 1 year ago

This likely an unintentional breakage due to https://github.com/RetroAchievements/RAIntegration/pull/961.

That's exactly what's happening. WM_GETDLGCODE is getting called somewhere in the lost focus path, so future inputs provide an extra TranslateMessage. Still investigating.