summaryrefslogtreecommitdiff
path: root/core/input
AgeCommit message (Collapse)Author
2023-01-08Use BitField<> in core type masksJuan Linietsky
* All core types masks are now correctly marked as bitfields. * The enum hacks in MouseButtonMask and many other types are gone. This ensures that binders to other languages non C++ can actually implement type safe bitmasks. * Most bitmask operations replaced by functions in BitField<> * Key is still a problem because its enum and mask at the same time. While it kind of works in C++, this most likely can't be implemented safely in other languages and will have to be changed at some point. Mostly left as-is. * Documentation and API dump updated to reflect bitfields in core types.
2023-01-05One Copyright Update to rule them allRémi Verschelde
As many open source projects have started doing it, we're removing the current year from the copyright notice, so that we don't need to bump it every year. It seems like only the first year of publication is technically relevant for copyright notices, and even that seems to be something that many companies stopped listing altogether (in a version controlled codebase, the commits are a much better source of date of publication than a hardcoded copyright statement). We also now list Godot Engine contributors first as we're collectively the current maintainers of the project, and we clarify that the "exclusive" copyright of the co-founders covers the timespan before opensourcing (their further contributions are included as part of Godot Engine contributors). Also fixed "cf." Frenchism - it's meant as "refer to / see".
2022-12-23[iOS] Add Apple Pencil pressure and tilt support.bruvzg
2022-12-12Sync controller mappings DB with SDL2 community repoRémi Verschelde
Synced with gabomdq/SDL_GameControllerDB@adf7ec1edfc0371ebf5fb469b61f301b8e26ec81
2022-11-24Add MAKE_RESOURCE_TYPE_HINT macro to simplify binding arrays of resourcesRémi Verschelde
2022-11-14add controller_number & controller_value to allow printing of all MIDI event ↵alcomposer
data
2022-11-02Style: Misc docs and comment style and language fixesRémi Verschelde
- Removed empty paragraphs in XML. - Consistently use bold style for "Example:", on a new line. - Fix usage of `[code]` when hyperlinks could be used (`[member]`, `[constant]`). - Fix invalid usage of backticks for inline code in BBCode. - Fix some American/British English spelling inconsistencies. - Other minor fixes spotted along the way, including typo fixes with codespell. - Don't specify `@GlobalScope` for `enum` and `constant`.
2022-11-02Unified shortcut to clear carets and selectionsAlfred Reinold Baudisch
Refactors`ui_text_remove_secondary_carets` from https://github.com/godotengine/godot/pull/68089 as `ui_text_clear_carets_and_selection`, with extra behaviour: - If there's only one active caret active with a selection, clears the selection. - In case there's more than one caret active, removes the secondary carets and clears selections. With this change, `TextEdit` then imitates the behaviour of VSCode for clearing carets and selections.
2022-10-31Shortcut and Bind to Remove Secondary CaretsAlfred Reinold Baudisch
Adds the bind `ui_text_remove_secondary_carets` to TextEdit, with ESC as the default shortcut. When the bind is performed, if the TextEdit has multiple carets, `remove_secondary_carets` is called and secondary carets are removed. This is useful when multiple selects are performed with `add_select_for_next_occurrence` #67644 or when multiple multiple carets are manually added, then it's possible to go back to a single caret with a shortcut. Closes #67991
2022-10-31Merge pull request #67578 from KoBeWi/GEDITORRémi Verschelde
Unify usage of GLOBAL/EDITOR_GET
2022-10-31Merge pull request #67139 from PucklaMotzer09/insert_caret_at_caretsRémi Verschelde
Add Caret Insert Below and Above shortcuts to TextEdit
2022-10-27Merge pull request #67644 from alfredbaudisch/add-selection-next-occurrenceClay John
Add Selection and Caret for Next Occurrence of Selection
2022-10-22Add double_tap attribute to InputEventScreenTouchFredia Huya-Kouadio
This provides parity with the `InputEventMouseButton` allowing for proper conversion between the two events.
2022-10-21Add Selection and Caret for Next Occurrence of SelectionAlfred Reinold Baudisch
Adds the bind `add_selection_for_next_occurrence` to TextEdit, with CTRL+D as the default shortcut. When the bind is performed, ff a selection is currently active with the last caret in text fields, searches for the next occurrence of the selection, adds a caret and selects the next occurrence. If no selection is currently active with the last caret in text fields, selects the word currently under the caret. The action can be performed sequentially for all occurrences of the selection of the last caret and for all existing carets. The viewport is adjusted to the latest newly added caret. The bind and the behaviour is similar to VS Code's "Add Selection to Next Find Match" and JetBrains' "Add Selection for Next Occurrence". It takes advantage of the multi-caret API. The default shortcut for `select_word_under_caret` has been changed to ALT+G, in order to give priority to CTRL+D for `add_selection_for_next_occurrence` to better align with popular IDEs and editors.
2022-10-18Unify usage of GLOBAL/EDITOR_GETkobewi
2022-10-18Add Caret Insert Below and Above shortcuts to TextEditPucklaMotzer09
2022-10-07Fix MSVC warnings, rename shadowed variables, fix uninitialized values, ↵bruvzg
change warnings=all to use /W4.
2022-10-03[Web] Add PS3 gamepad mapping for FF+Linux.Fabio Alessandrelli
2022-09-30ci: add Python static analysis check via mypyJiri Suchan
2022-09-27Sync controller mappings DB with SDL2 community repoRémi Verschelde
Synced with gabomdq/SDL_GameControllerDB@81ddc73d17b703b68c9142b46106a4db7c0d98c3
2022-09-25Merge pull request #63109 from OverloadedOrama/fix-input-event-actionRémi Verschelde
Fix `InputEventAction`'s `is_match` method ignoring `exact_match` parameter
2022-09-07Fix key mapping changes when moving from macOS to other platformbruvzg
Removes separate `Command` key (use `Meta` instead). Adds an event flag to automatically remap `Command` <-> `Control` (cannot be set alongside `Control` or `Meta`).
2022-09-05Updated gamecontrollerdb.txt to latest to include new mappings for various ↵Andres Hernandez
controllers, including Xbox One, Nintendo Switch, Steam Deck, and 8BitDo
2022-09-01Merge pull request #64444 from timothyqiu/action-completionRémi Verschelde
Fix action name completion for `Input`
2022-08-29[Web] Rename JavaScript platform to Web.Fabio Alessandrelli
Also rename export name from "HTML5" to "Web".
2022-08-24Merge pull request #64531 from madmiraal/fix-63972-2Rémi Verschelde
Fix axis mapped to DPad buttons not releasing opposite button
2022-08-23Replace Array return types with TypedArray 2kobewi
2022-08-23Merge pull request #64732 from RandomShaper/input_is_finalRémi Verschelde
Consolidate the fact that `Input` is meant to be final
2022-08-22Make `_validate_property` a multilevel methodYuri Sizov
2022-08-22Consolidate the fact that `Input` is meant to be finalPedro J. Estébanez
This reverts #38034 and removes the `iteration()` method.
2022-08-17Fix axis mapped to DPad buttons not releasing opposite buttonMarcel Admiraal
2022-08-15Fix action name completion for `Input`Haoyu Qiu
2022-08-07Use %s for bool value in vformatHaoyu Qiu
2022-08-05Sync controller mappings DB with SDL2 community repoRémi Verschelde
Synced with gabomdq/SDL_GameControllerDB@4896d2de6bac388b5f8f8a42d0c39c5892bd5847
2022-08-04Fix some array size function definition mismatch.Fabio Alessandrelli
2022-07-25Code quality: Fix header guards consistencyRémi Verschelde
Adds `header_guards.sh` bash script, used in CI to validate future changes. Can be run locally to fix invalid header guards.
2022-07-21Rename OSX to macOS and iPhoneOS to iOS.bruvzg
2022-07-18Sync controller mappings DB with SDL2 community repoRémi Verschelde
Synced with gabomdq/SDL_GameControllerDB@880abd09c97618d97a0e44e3761262f6fd1c6225
2022-07-17Fix `InputEventAction`'s `is_action` method ignoring `exact_match` parameterEmmanouil Papadeas
2022-07-04Merge pull request #62212 from hansemro/eraser-detect-4Rémi Verschelde
Add inversion/eraser-end property for tablet pens
2022-07-04[macOS, Windows, X11] Add stylus inverted/eraser support toHansem Ro
InputEventMouseMotion event
2022-07-03Input: Re-enable input accumulation by defaultRémi Verschelde
I turned it off by mistake in #38697. See also #62664 for details on this boolean's complex history :)
2022-06-28Input: Make `get_action_raw_strength` print error when the action doesn't existMarco F
2022-06-11Add suffixes to all nodes and resourcesFireForge
2022-06-04Merge pull request #61669 from fire-forge/inputRémi Verschelde
Make Input `mouse_mode` and `use_accumulated_input` properties
2022-06-03Make Input mouse_mode and use_accumulated_input propertiesFireForge
2022-06-03Add array element type to `get_connected_joypads`Raul Santos
2022-05-20Add a new HashSet templatereduz
* Intended to replace RBSet in most cases. * Optimized for iteration speed
2022-05-16Replace most uses of Map by HashMapreduz
* Map is unnecessary and inefficient in almost every case. * Replaced by the new HashMap. * Renamed Map to RBMap and Set to RBSet for cases that still make sense (order matters) but use is discouraged. There were very few cases where replacing by HashMap was undesired because keeping the key order was intended. I tried to keep those (as RBMap) as much as possible, but might have missed some. Review appreciated!
2022-05-12Add a new HashMap implementationreduz
Adds a new, cleaned up, HashMap implementation. * Uses Robin Hood Hashing (https://en.wikipedia.org/wiki/Hash_table#Robin_Hood_hashing). * Keeps elements in a double linked list for simpler, ordered, iteration. * Allows keeping iterators for later use in removal (Unlike Map<>, it does not do much for performance vs keeping the key, but helps replace old code). * Uses a more modern C++ iterator API, deprecates the old one. * Supports custom allocator (in case there is a wish to use a paged one). This class aims to unify all the associative template usage and replace it by this one: * Map<> (whereas key order does not matter, which is 99% of cases) * HashMap<> * OrderedHashMap<> * OAHashMap<>