YoYoGames / GameMaker-Bugs

Public tracking for GameMaker bugs
15 stars 7 forks source link

Inputing non-ASCII characters breaks text input #6084

Open inhalt120g opened 1 month ago

inhalt120g commented 1 month ago

Description

Open any file that contains editable code: If I select anything text based in the code editor (a part of code or a string or a comment, doesn't matter) and start typing anything non-ASCII, for example Japanese, finish typing and confirm it by pressing Space and Enter (at this point the window for the current editor will get the "changed" mark) but then press Undo, the editor will not restore the original text even though it will remove the "marked" sign, but instead will show the newly added text and Undo will stop functioning. If you type fast without looking at the screen and don't realize what's happening while keeping hitting Undo, parts of code will get mixed up and the IDE will sometimes even freeze.

(I did not attach a sample project because this happens with any typed text in the IDE, and is project-independent.)

Expected Change

I expect the Undo to keep working and the text not to get garbled if I input text in non-ASCII.

Steps To Reproduce

  1. Start GameMaker. It is assumed you already have Chinese or Japanese (or maybe other non-ASCII input system, I haven't tried with Arabic for example) on your computer.
  2. In an open code editor window, highlight some text.
  3. Start typing anything, like 桃太郎. Confirm input (in the case of Japanese, normally you'd press Space)
  4. Hit Undo.
  5. See the issue

How reliably can you recreate this issue using your steps above?

Always

Which version of GameMaker are you reporting this issue for?

2024.4.1 (Monthly)

Which operating system(s) are you seeing the problem on?

macOS Sonoma

Are you running GameMaker from inside your Steam library?

None

Contact Us Package Attached?

Sample Project Added?

inhalt120g commented 1 month ago

One detail I forgot to mention, in step 2 (after you press Space to convert the input to characters and which causes the freshly typed word to substitute the highlighted text) the cursor weirdly stays at the beginning of the word. This should not happen, the cursor should instead jump at the end of the new word.