Skip to content

Snap Settings fields behave inconsistently compared to the inspector #106388

@VojtaStruhar

Description

@VojtaStruhar

Tested versions

v4.4.1.stable.official [49a5bc7]
v4.5.dev4.official [209a446]

System information

Godot v4.5.dev4 - macOS Sequoia (15.3.2) - Multi-window, 2 monitors - Metal (Forward+) - integrated Apple M2 (Apple8) - Apple M2 (8 threads)

Issue description

The fields in Snap Settings don't interpret the values the same way inspector properties do. I think it would be nice to unify this.

Also the snap settings accept any arbitrary text with no feedback. This is most noticeable when I mistakenly type a comma instead of a dot as a decimal separator. Inspector fields handle this gracefully (I love it).

Image

I would expect the fields to interpret the expression, like the inspector fields would. Or at least zero out the fields instead of keeping the invalid values ("a" for rotation snap) there.

Link to the Snap Settings in source code, they are all plain LineEdits.

Steps to reproduce

Open the Snap Settings dialog in 3D > Transform (top bar) > Configure Snap... and try inputting an invalid value into the fields (all three fields act the same)

Some examples:

  • 0,1 --> 0, because comma is not interpreted as a decimal separator and zero is the first number.
  • 5+5 --> 5, similar to above - the expression isn't evaluated
  • a --> 0, I'm guessing the fallback for invalid number parse is zero. This is correct, but I'd expect the field to reflect that.
  • -1 --> 1, this one behaves correctly. I'd expect it to turn into a 1 in the dialog though.

Also the invalid values (like the letter a) stay in the dialog fields when it's closed and opened again. I'd expect the fields it to reflect the interpreted values - if not now, then surely after closing and opening.

Minimal reproduction project (MRP)

No setup needed, this is an editor bug

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions