Commit Graph

2735 Commits

Author SHA1 Message Date
Michael Alexsander 89d7b494d7 Add property to auto adjust oversampling with canvas item scale. Apply it to theme preview. 2026-05-25 22:17:59 +03:00
Thaddeus Crews 44a215ec06 Merge pull request #117217 from uno1982/fix/viewport-texture-path-update-null-common-parent
Fix Viewport path update error when dock is reparented during tree
2026-05-22 19:24:21 -05:00
Thaddeus Crews db0467cc6a Merge pull request #118895 from Infiland/fix-118826-inspector-tooltips
Fix inspector tooltips after focus changes
2026-05-14 09:06:48 -05:00
Mikael Hermansson b9634e7c68 Fix PopupMenu input handling when scaled/padded 2026-05-13 20:47:01 +02:00
Thaddeus Crews eb7cfe1362 Merge pull request #119328 from bruvzg/ac_nested_popup_rects
[Accessibility] Fix positions of nested popups sent to the screen reader.
2026-05-12 12:25:47 -05:00
Thaddeus Crews 9dc22aa76c Merge pull request #119310 from KoBeWi/instant_default
Fix 2D instance parameters not being revertible
2026-05-12 12:25:44 -05:00
Michael Alexsander 7545b7e128 Fix incorrect tooltips in PopupMenu when the search bar is enabled 2026-05-11 15:26:10 -03:00
Pāvels Nadtočajevs 9482ef1fe3 [Accessibility] Fix positions of nested popups sent to the screen reader. 2026-05-11 08:04:32 +03:00
kobewi f2e4099447 Fix 2D instance parameters not being revertible 2026-05-07 16:40:19 +02:00
Dimitri Sukhankin 4948633a79 Better error message for setting invalid Z index 2026-05-02 15:09:29 +04:00
Thaddeus Crews bafddf210c Merge pull request #119002 from StarryWorm/fix-tooltips
Always emit post-enter translation notification
2026-04-29 12:28:51 -05:00
Thaddeus Crews e8a58d1343 Merge pull request #118909 from aurpine/fix-scene_tree-constr-vrs-texture
Fix SceneTree constructor not using VRS texture
2026-04-28 09:02:41 -05:00
Enzo Novoselic cb84ff2ec7 Always emit post-enter translation notification 2026-04-27 13:09:25 -04:00
aurpine f45497d4bd Fix SceneTree constructor not using VRS texture 2026-04-24 03:07:09 -04:00
Infiland b08d13cc41 Fix stale pressed state after focus changes
Release pressed input state whenever app or embedder focus changes so editor hover tooltips are not blocked by stale keyboard input while preserving the unfocused joypad behavior in Input.
2026-04-23 22:15:33 +02:00
Thaddeus Crews 9b4b3831d2 Merge pull request #118588 from Bromeon/feature/more-required-ptrs
Use `RequiredParam`/`RequiredResult` in several more APIs
2026-04-16 09:41:13 -05:00
Thaddeus Crews 790c68368f Merge pull request #118590 from Bromeon/feature/required-ptr-conversion
Add `RequiredParam` -> `RequiredResult` conversion
2026-04-16 09:41:12 -05:00
Kaleb Reid f973e3e346 Remove p_ and add r_ prefixes to argument names 2026-04-15 13:47:15 -07:00
Thaddeus Crews 4836ba26f0 Merge pull request #115340 from wagnerfs/add-translation-context
Add translation context to Controls
2026-04-15 14:02:36 -05:00
Rémi Verschelde 37b6d4d8be Merge pull request #117776 from migueldeicaza/fix-crash-viewport
Fix a potential crash in `Viewport` 3D physics picking
2026-04-15 12:40:44 +02:00
Wagner a82b69a554 Adds translation context to Controls
Co-authored-by: jkirsteins <janis.kirsteins@datadoghq.com>
2026-04-14 23:47:49 -03:00
Jan Haller 71d44651c4 Add RequiredParam -> RequiredResult conversion
Adds implicit conversion from `RequiredResult<T_Other>` to `RequiredParam<T>` (where
`T_Other` derives from `T`). This allows passing a `RequiredResult` directly to a
`RequiredParam` without an intermediate variable.

Also changes `SceneTree::get_root()` to return `RequiredResult<Window>`. It is used in a
conversion as described above.

Why non-null: The root window is created in the `SceneTree` constructor and only set to
null in the destructor, so it is always valid during normal use. The function is no longer
`_FORCE_INLINE_` because `RequiredResult<Window>` requires Window to be a complete type.
2026-04-15 01:23:48 +02:00
Jan Haller 773ee962ed Use RequiredParam/RequiredResult in several more APIs 2026-04-15 00:53:13 +02:00
Thaddeus Crews 7ce1853014 Merge pull request #108219 from CookieBadger/area-light-integration
Add Rectangular Area Light Source
2026-04-14 07:10:56 -05:00
Thaddeus Crews 46a2cf6d25 Merge pull request #116286 from kleonc/node_replace_by_dont_remove_internal_nodes
Don't remove internal nodes in `Node::replace_by`
2026-04-10 10:32:12 -05:00
Thaddeus Crews ed0d6fa48e Merge pull request #118240 from KoBeWi/chomnks
Fix files deleted after chunked transfer completes
2026-04-08 09:25:45 -05:00
StarryWorm bdca8b66e7 Add custom_maximum_size to Control
This property mirrors `custom_minimum_size` and enables the user to set a size the `Control`. Enabling `propagate_maximum_size` forces all children to respect this node's maximum_size.
Not all `Control` types handle this gracefully, which may result in content clipping.
2026-04-07 14:34:12 -04:00
kobewi 1ae2b90ca5 Fix files deleted after chunked transfer completes 2026-04-06 12:22:37 +02:00
CookieBadger 7b7bd1dcea Add AreaLight3D 2026-04-04 01:37:10 +02:00
Thaddeus Crews a70b7ad1e6 Merge pull request #115666 from DarkKilauea/rendering/hdr-output-changed
[Windows] HDR Output: Emit window events when HDR state changes
2026-04-03 11:52:20 -05:00
Thaddeus Crews 3b2dabf339 Merge pull request #118015 from akien-mga/node-get_path_to-explicit-error-no-common-parent
Make `Node.get_path_to()` error user-friendly when there is no common parent
2026-04-03 11:52:15 -05:00
Thaddeus Crews 872cfabf3d Merge pull request #79731 from Calinou/viewport-add-nearest-3d-scaling
Add a nearest-neighbor scaling option to Viewport's Scaling 3D Mode property
2026-04-02 12:33:13 -05:00
Rémi Verschelde a369cd466b Make Node.get_path_to() error user-friendly when there is no common parent 2026-03-30 21:54:14 +02:00
Thaddeus Crews 3eb96c8313 Merge pull request #117244 from bruvzg/ii
Do not show accessibility configuration warnings for non-focusable controls, account for name fallback.
2026-03-30 13:35:35 -05:00
Thaddeus Crews e03a2c4c76 Merge pull request #117282 from bruvzg/ac_pop_ctx
[Accessibility] Only embed popup tree for non-focusable popups and tooltips.
2026-03-30 13:35:32 -05:00
Rémi Verschelde 707b19f397 Revert "Expose Control.call_gui_input"
This reverts commit 35eabf06b9.

This was merged by mistake, there's no consensus yet on the implementation.
2026-03-26 17:08:42 +01:00
Hugo Locurcio 5df0c8b271 Add a nearest-neighbor scaling option to Viewport's Scaling 3D Mode property
This is useful for 3D games with a pixel art appearance, or when
using a resolution scale of `0.5` to improve performance without
compromising crispness too much when not using FSR 1.0.

The property hints now allow decreasing the scale further to accomodate
for pixel art use cases, as well as increased precision in the value
(useful for a scale of `0.3333`).

Co-authored-by: Daniel Savage <dansvg@gmail.com>
Co-authored-by: Kaleb Reid <78945904+Kaleb-Reid@users.noreply.github.com>
2026-03-25 00:05:54 +01:00
Lyuma 35eabf06b9 Expose Control.call_gui_input
This allows simulated events to be sent directly to individual controls.
2026-03-24 01:48:39 -07:00
Miguel de Icaza 8a9fd16112 Fixes a crash in viewport.cpp in the wild while running a game (#117775)
I believe the crash is a stale-lifetime bug in 3D picking.

Viewport::_process_picking() caches last_object / last_id for multiple queued
input events at the same pointer position. If the first _input_event callback
removes the picked CollisionObject3D or current Camera3D from the tree, the next
queued event can still reuse that cached target and call
_collision_object_3d_input_event(), which immediately does get_global_transform
on an object that is no longer safe to query.

The patch does four things:

1. It rejects captured 3D pick targets that are no longer is_inside_tree()
   before reuse at viewport.cpp (similar changes exist in the code):

2. It re-fetches the cached same-position object from ObjectDB, verifies it
   still matches the cached pointer, and verifies it is still in the tree before
   dispatching.

3. It skips _mouse_exit() for a hovered 3D object that has already left the tree
   at viewport.cpp.

4. It adds a final guard inside _collision_object_3d_input_event() so even a
   future caller cannot query transforms on removed nodes or cameras at
   viewport.cpp.
2026-03-23 21:42:53 -04:00
Rémi Verschelde 970f8236b5 Merge pull request #117733 from KoBeWi/autranslator_localized_(i.e._at_location)
Add `_get_tooltip_auto_translate_mode_at()` to Control
2026-03-23 22:36:15 +01:00
Rémi Verschelde 938f3e376e Merge pull request #117448 from KoBeWi/exterminate_incompletion
Automatically remove incomplete file downloads
2026-03-23 22:34:39 +01:00
kit 94c2707a8b Fix WindowWrapper leaking all key inputs to parent 2026-03-23 16:58:42 -04:00
kobewi 0d220b35a5 Add _get_tooltip_auto_translate_mode_at() to Control 2026-03-22 17:56:46 +01:00
Josh Jones 3512a169b2 Emit events when HDR output state changes externally 2026-03-21 14:42:56 -07:00
Rémi Verschelde 98868393cc Style: Enforce #include validation hook 2026-03-18 10:41:59 +01:00
Bashar-R c0706bb71d Fix editable children state when duplicating instantiated nodes
Co-Authored-By: Pedro J. Estébanez <RandomShaper@users.noreply.github.com>
2026-03-16 10:57:29 -05:00
Samuel Rhodes 5a29f338f5 Fix error in debugger while changing scene on button clicked with touchscreen
When changing scenes via button click with a touchscreen, nodes can be removed
from the tree during input event processing. The ERR_FAIL_COND_V assertion in
can_process() would trigger an error when called on nodes already removed from
the tree. Changed to return false instead of asserting, which is the correct
behavior for nodes not in the tree.

Fixes #115376
2026-03-16 11:34:26 +01:00
kobewi 9216df2041 Automatically remove incomplete file downloads 2026-03-15 17:02:49 +01:00
Pāvels Nadtočajevs cdb35db426 Do not show accessibility configuration warnings for non-focusable controls, account for name fallback. 2026-03-13 08:53:09 +02:00
bruvzg 720e70b14f [Accessibility] Only embed popup tree for non-focusable popups and tooltips. 2026-03-12 08:36:07 +02:00