Commit graph

783 commits

Author SHA1 Message Date
Bastiaan Olij
9042ddf19f Improvements to VRS/Foveated rendering 2024-05-03 17:20:30 +10:00
Rémi Verschelde
b2af040423
Merge pull request #91425 from Sauermann/fix-force-drag-focus-crash
Make `mouse_focus` and `mouse_focus_mask` consistent for force_drag
2024-05-02 12:46:45 +02:00
A Thousand Ships
308dbb8c63
[Core] Add scalar versions of Vector* min/max/clamp/snap(ped)
Convenience for a number of cases operating on single values
2024-05-02 10:31:13 +02:00
Markus Sauermann
30a19a5c2f Make mouse_focus and mouse_focus_mask consistent for force_drag
In `Viewport::_gui_force_drag` currently `Viewport::gui.mouse_focus`
gets cleared, but `Viewport::gui.mouse_focus_mask` doesn't get cleared.

This is an inconsistency which can cause a crash.

With the change of this PR, `mouse_focus_mask` also gets cleared.
This is in alignment with how regular drag and drop clears both variables.
2024-05-02 00:10:29 +02:00
Markus Sauermann
792b38813f Remove unused variable Viewport::gui.last_mouse_focus
The last use was removed in January 2023
2024-05-01 11:20:40 +02:00
Bastiaan Olij
cbab7dc049 OpenXR: Change timing of xrWaitFrame and add thread safety features to OpenXR 2024-05-01 14:24:41 +10:00
Rémi Verschelde
ca38212604
Merge pull request #89643 from mnemoli/pickone-fix-89641
Fix mouse events when `physics_object_picking_first_only` enabled
2024-04-30 17:03:10 +02:00
kit
154f727c7a Overhaul TextEdit selection.
The caret is now a part of the selection.
2024-04-26 14:24:10 -04:00
kobewi
3ebb5b84a0 Add separate feature tags for editor runtime 2024-04-26 14:44:38 +02:00
Koyper
0881c81c13 Fix non-embedded Windows resizing to match Viewport content scale factor 2024-04-17 09:30:16 -05:00
Rémi Verschelde
0c71ba7801
Merge pull request #89880 from dsnopek/openxr-composition-layers-node3d-drs
Add support for OpenXR composition layers
2024-04-04 17:09:07 +02:00
David Snopek
0f2b804059 Add support for OpenXR composition layers
Co-authored-by: Bastiaan Olij <mux213@gmail.com>
2024-04-04 09:20:23 -05:00
Markus Sauermann
48ea019322 Fix a special case for button masks
In certain situations it is possible that in a `Viewport` the same
mouse button is pressed twice in series without releasing it in
between.
In this case, focus stealing should happen to ensure, that the
mouse button is not sent unintentionally to the previously focused
Control node.
2024-03-28 20:22:49 +01:00
Rémi Verschelde
17c66c0bea
Merge pull request #89805 from AThousandShips/viewport_report
Add missing `RenderInfoType` enum to `Viewport`
2024-03-25 11:18:43 +01:00
A Thousand Ships
8a88e5ea07
Add missing RenderInfoType enum to Viewport 2024-03-23 14:03:08 +01:00
A Thousand Ships
79ba22a73f
Use Vector* component-wise min/max/clamp functions where applicable 2024-03-20 13:47:42 +01:00
mnemoli
ca23775374 Fix mouse_enter/mouse_exit events when physics_object_picking_first_only is on 2024-03-18 11:19:22 +00:00
Aaron Franke
c1e9842afb Organize 2D audio, camera, and physics in Viewport 2024-03-10 13:10:13 -07:00
Rémi Verschelde
99ba2519ea
Merge pull request #88992 from Sauermann/fix-window-mouse-notification
Fix mouse entered notifications
2024-02-29 13:55:12 +01:00
Markus Sauermann
d259f979f5 Fix mouse entered notifications
Make sure, that a windows initial state is `mouse_in_viewport = false`.
This makes sure, that the mouse entered notification is sent when the
mouse hovers a window for the first time.

For embedded Windows, `NOTIFICATION_WM_MOUSE_ENTER` is currently sent
twice in a row. Remove one of the places where it is sent.
`Window::_update_mouse_over()` is the correct one, because there it is
also called for native windows.
2024-02-29 00:57:31 +01:00
Michael Alexsander
d70c45b5c8
Add option to add built-in strings in the POT generation 2024-02-28 11:34:26 -03:00
smix8
35dafc9fa8 Split monolithic physics class files
Splits monolithic physics class files.
2024-02-27 11:18:16 +01:00
stoofin
b6c033fc39 Add all Viewport.debug_draw enum options to dropdown 2024-02-23 23:55:01 -08:00
A Thousand Ships
3a707b1f54
Fix some additional errors with 3D disabled
* Disabled 2D navigation tests as they do not work
* Disabled tests for primitive meshes
* Unbound some `Mesh` methods that rely on 3D resources
* Unexposed `World3D` as it depends on physics (and isn't useful)
* Unexposed some `Viewport` vrs related properties that had unexposed
  methods
2024-02-23 20:58:56 +01:00
Markus Sauermann
8de39911c8 Fix global position for InputEventMouse in viewport::push_input
Global position doesn't get adjusted within `InputEventMouse::xformed_by()`.
2024-02-18 03:26:09 +01:00
Rémi Verschelde
21f0529aa9
Revert "Update Node::get_configuration_warnings signature"
This reverts commit d3852deaa4.
2024-02-17 19:03:21 +01:00
Michael Alexsander
7b42c24550
Make auto translation inheritable 2024-02-15 16:51:19 -03:00
Silc Lizard (Tokage) Renew
67e38709fd Avoid unqualified-id "near" and "far" in Node3DEditor/Viewport 2024-02-13 18:53:21 +09:00
Rémi Verschelde
5306b917e6
Merge pull request #87164 from 0x0ACB/camera_fix
Rename camera `near` and `far` private members to avoid conflict with `Windows.h` defines
2024-02-12 23:29:22 +01:00
Rémi Verschelde
2b36dcf70a
Merge pull request #75688 from mnemoli/pickone
Add setting for picking only top-most overlapping collision object
2024-02-12 13:33:08 +01:00
RedMser
d3852deaa4 Update Node::get_configuration_warnings signature 2024-02-08 23:05:20 +01:00
Markus Sauermann
36c2c4bf0d Remove unused Variable Viewport::gui_input_group
The gui input group is not needed during the gui input step.
2024-01-26 23:37:30 +01:00
Yuri Sizov
91ac53ec1b Merge pull request #87385 from Sauermann/fix-subviewport-physics-picking
Fix SubViewport physics picking
2024-01-25 16:27:02 +01:00
Yuri Sizov
e0f8cf4acb Merge pull request #77730 from Jummit/fix-subviewport-1
Fix `push_input` events not going through after first pressed mouse event
2024-01-22 20:38:22 +01:00
Markus Sauermann
7b00c136a1 Fix SubViewport physics picking
Apply the logic of `handle_input_locally` for physics picking.
2024-01-19 21:42:41 +01:00
ACB
96b8016a35 Rename camera near and far private members to avoid conflict with Windows.h defines 2024-01-15 12:31:15 +01:00
mnemoli
a407219693 Add Viewport setting for picking only first-encountered CanvasItem physics object 2024-01-11 14:18:37 +00:00
kobewi
0e8f90f4c8 Update deferred calls to use Callables 2024-01-09 16:11:47 +01:00
Rémi Verschelde
0d922f61e3
Merge pull request #86220 from Sauermann/fix-embed-subwindow
Fix changing `gui_embed_subwindows` while a child window is displayed
2024-01-03 10:13:03 +01:00
Markus Sauermann
62587d2d19 Fix changing gui_embed_subwindows while a child window is displayed
Changing `gui_embed_subwindows` while a child window is displayed can lead
to crashes or other unintended behavior.
This PR adds checks to prevent the change while child windows are
displayed.
2024-01-03 10:09:51 +01:00
Markus Sauermann
4b6516c843 Fix D&D viewport position calculation
It is necessary to transform screen position to viewport position.
2023-12-25 23:32:29 +01:00
Claire Blackshaw
fe7725239e Expose a method to get hovered Control in Viewport 2023-12-18 14:53:52 +01:00
Jummit
7957354091 Fix push_input only working the first time
Subviewports didn't update their parent's local_input_handled correctly.

Fixes #76439.
2023-12-02 20:30:26 +01:00
kit
78e1702adb fix crash on hiding grandparent on mouse exit 2023-12-02 14:24:56 -05:00
Markus Sauermann
3de9afc4a9 Fix crash when hiding a Control during mouse-entering
gui.mouse_over can be set to `nullptr` in the `NOTIFICATION_MOUSE_ENTER`-
user-callback a few lines above. This case was previously not handled.
2023-11-23 23:25:00 +01:00
kit
d24d73ba31 Make mouse-enter/exit notifications match mouse event propagation
`NOTIFICATION_MOUSE_ENTER` and `NOTIFICATION_MOUSE_EXIT` now includes
the areas of children control nodes if the mouse filters allow it.

In order to check if a Control node itself was entered/exited, the newly
introduced `NOTIFICATION_MOUSE_ENTER_SELF` and
`NOTIFICATION_MOUSE_EXIT_SELF` can be used.

Co-authored-by: Markus Sauermann <6299227+Sauermann@users.noreply.github.com>
2023-11-09 09:11:59 -05:00
clayjohn
f672198f5e Revert "Add a Disable 2D property to Viewport"
This reverts commit f6cc2603a1.
2023-10-27 14:45:59 +02:00
Rémi Verschelde
a1d7c62df7
Merge pull request #83003 from AThousandShips/null_check_extra
Replace `ERR_FAIL_COND` with `ERR_FAIL_NULL` where applicable
2023-10-09 15:37:14 +02:00
A Thousand Ships
f18aa00e85 Replace ERR_FAIL_COND with ERR_FAIL_NULL where applicable 2023-10-08 17:23:33 +02:00
Hugo Locurcio
f6cc2603a1
Add a Disable 2D property to Viewport
This is the 2D counterpart to the existing Disable 3D property.
Its functionality is already internally implemented and used,
but it wasn't exposed.
2023-10-07 17:19:15 +02:00