Skip to content

Conversation

@Ruzihm
Copy link
Contributor

@Ruzihm Ruzihm commented Jan 23, 2026

Closes #1583

Test case setup:

Edit TestGame's TestInterface.dmf and add a new macro to macro list:

  • Action: Back
  • Command: say hi

Test case:

  1. Click on map then press backspace.
  2. Click on text input then press backspace.
  3. Click on text input, input asdf, then hold backspace for a few seconds.

Byond:

  1. Command happens (xyz says: "hi" appears in output)
  2. The command happens once.
  3. Whole input gets emptied, then the command happens once.

OD Before PR:

  1. Command happens
  2. The command does not happen.
  3. Only f gets removed. Command does not happen.

OD After PR:

  1. Command Happens
  2. The command does not happen
  3. Whole input gets emptied. Command does not happen.

The remaining disparities here (in bold) basically require a couple RT changes. Making these changes to RT and rebuilding bring the test case to full parity.

  1. A LineEdit that calls args.Handle() in KeyBindDown under different conditions - in this case, in backspace it would only be called when it actually removes character(s). Other controls would need similar treatment, for situations like writing on paper.
  2. A change to UserInterfaceManager.OnUIKeyBindStateChanged where it can require args.Handled to also be true in order to return true.

@boring-cyborg boring-cyborg bot added the Client Involves the OpenDream client label Jan 23, 2026
@github-actions github-actions bot added size/XS and removed size/S labels Jan 23, 2026
@wixoaGit wixoaGit merged commit a294768 into OpenDreamProject:master Jan 24, 2026
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Client Involves the OpenDream client size/XS

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Holding backspace doesn't remove more than one character

2 participants