Normalize legacy device=0 on keyboard/mouse events when loading
input actions from project settings. Before eadec6c605, these
events defaulted to device=0; now they use DEVICE_ID_KEYBOARD (16)
and DEVICE_ID_MOUSE (32), causing _find_event() mismatches.
Press Ctrl/Cmd + Shift + L (`ui_toggle_licenses_dialog` built-in action)
to show/hide the notices dialog.
The dialog can be shown via script using
`SceneTree.licenses_dialog_visible = true|false`.
Co-authored-by: MewPurPur <mew.pur.pur@abv.bg>
This reverts commit 916d480686.
Revert "Fix InputEvent crash when opening project"
This reverts commit abb9c0f171.
Introduce a compatibility function for projects affected by the
device id clash reversal
Since the reverted PR introduced changes in the project.godot
file, it seems prudent to introduce a compatibility function for
such affected projects.
`InputMap::ALL_DEVICES` and `InputEvent::DEVICE_ID_EMULATION` have the
same value `-1`.
Change value of `InputMap::All_DEVICES` so that it's different from
`InputEvent::DEVICE_ID_EMULATION`. `InputEvent::DEVICE_ID_EMULATION`
is part of the API and can't be changed without potentially breaking
projects.
Gather all special device constants in a single location inside
`InputEvent`.
Add a converter to project settings, that takes care of adjusting
project files during loading.
This makes Tab and Enter act identical by default for autocompletion.
If Shift is held, the suggestion is added in-place without the word
being replaced. This matches the behavior found in Visual Studio Code
where the following occurs:
- Pressing Tab accepts the suggestion and replaces the word.
- Pressing Enter accepts the suggestion and replaces the word.
- Pressing Shift + Tab accepts the suggestion and doesn't replace the word.
- Pressing Shift + Enter accepts the suggestion and doesn't replace the word.
Adds `ui_text_skip_selection_for_next_occurrence` action and related implementation to text editor.
This action is bound `Ctrl+Alt+D` shorcut.
Used in conjonction with `ui_add_skip_selection_for_next_occurrence`, it gives the user the ability to select many occurrences of a selection
and avoid some of them.
Used without a previous selection, the action jumps to the next occurrence of the current word under the caret.