Commit Graph

2188 Commits

Author SHA1 Message Date
Rémi Verschelde e2dd56bea7 Merge pull request #95902 from kitbdev/remove-forced-mouse-focus
Clean up Viewport's `forced_mouse_focus`
2024-09-03 17:38:17 +02:00
Rémi Verschelde 13a90e938f Merge pull request #70096 from rune-scape/stringname-dict
StringName Dictionary keys
2024-09-03 17:38:06 +02:00
aaronp64 7a9acd5aca Fix SubViewport/AudioStreamPlayer2D crash
Updated Viewport destructor to remove itself from World2D, to avoid World2D keeping invalid pointers.
2024-09-03 08:27:47 -04:00
rune-scape 154049ce17 StringName Dictionary keys
also added 'is_string()' method to Variant
and refactored many String type comparisons to use it instead
2024-08-29 13:39:27 -07:00
Rémi Verschelde e98aaf1caa Merge pull request #94477 from RedMser/typos-batch-1
Fix various typos
2024-08-28 00:12:12 +02:00
Rémi Verschelde f565996472 Merge pull request #92536 from Daylily-Zeleen/daylily-zeleen/fix_3d_input_event
Add missing check to avoid passing handled input event to collision object 3d.
2024-08-28 00:10:57 +02:00
Rémi Verschelde 40c17d6380 Merge pull request #95846 from jadoc/fix-tooltips
Only reset the tooltip timer when the mouse has actually moved
2024-08-26 22:45:28 +02:00
Alex Docauer 125ff3213a Only reset tooltip timer when mouse actually moved
InputEventMouseMotion isn't guaranteed to fire only on actual mouse
movement. It's not uncommon for the underlying OS motion event to be
sent either by the OS itself or another application even though the
mouse hasn't moved.  Godot will generate such zero-motion
InputEventMouseMotion events itself for things like cursor shape
changes.

Once started, the tooltip timer is reset only after a mouse movement of
at least 5 pixels in one frame.
2024-08-22 19:20:41 -07:00
Rémi Verschelde 091212b4f1 Merge pull request #93602 from aaronp64/inspector_latency
Improve Editor Inspector/Theme item lookup performance
2024-08-22 00:10:26 +02:00
kit 307e40e873 Clean up Viewport forced_mouse_focus 2024-08-21 09:37:44 -04:00
aaronp64 7593e55527 Improve Editor Inspector/Theme item lookup performance
Changes to reduce the latency between changing node selection in the editor and seeing the new node reflected in the Inspector tab

- Use Vector instead of List for ThemeOwner::get_theme_type_dependencies and related functions
- Use Vector instead of List for ThemeContext::themes, set_themes(), and get_themes()
- Add ClassDB:get_inheritance_chain_nocheck to get all parent/ancestor classes at once, to avoid repeated ClassDB locking overhead
- Update BIND_THEME_ITEM macros and ThemeDB::update_class_instance_items to use provided StringNames for call to ThemeItemSetter, instead of creating a new StringName in each call

These changes reduce the time taken by EditorInspector::update_tree by around 30-35%
2024-08-20 13:39:40 -04:00
Rémi Verschelde 0ab62a128a Merge pull request #91971 from Delsin-Yu/WrapControls_ContentScaleFactor
Fix `Window.wrap_controls` does not account for the `content_scale_factor`
2024-08-19 16:04:44 +02:00
jordi 61e2aa7914 Redraw SubViewportContainer on SubViewport size change 2024-08-19 14:53:53 +02:00
DE-YU 46abbae2b0 Fix Window.wrap_controls does not account for the content_scale_factor 2024-08-19 14:48:43 +02:00
Rémi Verschelde 6d22b8026d Merge pull request #90992 from RadiantUwU/fix_node_duplicate
Fix `Node.duplicate()` crash when duplicating a node that cannot be instantiated.
2024-08-19 14:33:31 +02:00
Rémi Verschelde f01e052162 Merge pull request #95549 from timothyqiu/split-translation-server
Split `TranslationServer` into its own file
2024-08-16 14:36:16 +02:00
Rémi Verschelde 46c6865979 Merge pull request #92391 from rburing/fti_3d
Physics interpolation (3D)
2024-08-16 10:33:37 +02:00
Rémi Verschelde a86c3e44dd Merge pull request #91965 from aaronp64/tooltip_size
Fix tooltip content being cut off at some display scales
2024-08-16 10:33:25 +02:00
Haoyu Qiu 7343dc3a5d Split TranslationServer into its own file 2024-08-15 15:00:47 +08:00
Radiant 70f41e414e Fix node.duplicate, return nullptr if this operation fails. 2024-08-02 16:26:19 +03:00
kit fce60c2b3f Fix update mouse cursor state wrong mouse position 2024-07-31 14:10:40 -04:00
Daylily-Zeleen f90f663258 Avoid passing handled input event to collision object 3d. 2024-07-27 14:58:56 +08:00
Alvin Wong 97aa278edb Pass window exclusive and transient properties for subwindow creation
On Windows this allows to avoid having to change the owner of the window
after it has been created, which in rare circumstances may cause the
window to bug out.
2024-07-25 00:27:27 +08:00
Rémi Verschelde edefcf6d1e Merge pull request #94230 from CrazyRoka/optimize-gdscript-get-position
Optimize `Node::is_readable_from_caller_thread()` by prioritizing the most common case
2024-07-19 11:10:43 +02:00
RedMser f9258ff928 Fix typos 2024-07-17 18:53:03 +02:00
matheusmdx 260c05152d Fix resources being skipped in InstancePlaceholder 2024-07-17 10:25:29 -03:00
CrazyRoka 6c86268fdd Decorate rare !data.inside_tree condition with unlikely 2024-07-12 13:38:41 +01:00
CrazyRoka 53e9d90850 Optimize Node::is_readable_from_caller_thread() by prioritizing the most common case. 2024-07-11 20:40:00 +01:00
Ricardo Buring 2f8ab4a654 Fixed Timestep Interpolation (3D)
Adds 3D fixed timestep interpolation to the rendering server.
This does not yet include support for multimeshes or particles.

Co-authored-by: lawnjelly <lawnjelly@gmail.com>
2024-07-07 22:15:23 +02:00
Ricardo Buring ceadbaa299 Fixed Timestep Interpolation: Fix behaviour on pause
Co-authored-by: lawnjelly <lawnjelly@gmail.com>
2024-07-07 16:48:17 +02:00
kobewi bef2e62c88 Fix duplicating nodes with Array properties 2024-06-27 19:17:50 +02:00
bruvzg c689823c60 Fix subwindow titlebar redraw on oversampling change. 2024-06-23 00:01:56 +03:00
Ainsley 915e39b3c9 Use _camera_3d_set instead of change camera_3d directly 2024-06-20 17:21:38 +08:00
Rémi Verschelde 0ec023f101 Merge pull request #92678 from warriormaster12/dup_prop_before_remap_resources
Duplicate properties first before remapping resources
2024-06-18 14:08:39 +02:00
bruvzg 18393eb09a [Window] Ignore duplicate mouse enter events. 2024-06-12 22:37:28 +03:00
Rémi Verschelde 5bab95a556 Merge pull request #92827 from raulsntos/core/node-to_string
Use GDExtension `to_string` in Node
2024-06-12 10:00:29 +02:00
Raul Santos 29bf60cc02 Use GDExtension to_string in Node
Matches the `Object::to_string` implementation.
2024-06-11 17:40:51 +02:00
bruvzg 768fd1eacb [Window] Fix mouse hover state of the main window when mouse enter event was sent before setting callbacks. 2024-06-10 18:43:01 +03:00
Rémi Verschelde b7ea8415c2 Merge pull request #91997 from aaronp64/tooltip_transforms
Fix tooltip mouse position conversion for scaled controls
2024-06-10 16:11:39 +02:00
bruvzg 864a93fdbf Fix excessive canvas items updates. 2024-06-05 21:01:30 +03:00
bruvzg 9fb9660912 Force canvas item update on oversampling change. 2024-06-03 19:46:49 +03:00
warriormaster12 e4d0d1344b Duplicate properties first before remapping resources 2024-06-02 13:27:35 +03:00
bruvzg 5c433cf693 Update editor Window preview position when resizing window. 2024-05-31 07:52:46 +03:00
Rémi Verschelde c9f249796d Merge pull request #92317 from bruvzg/emb_decorations
Fix `get_position_with_decorations` and `get_size_with_decorations` for embedded windows.
2024-05-30 11:48:02 +02:00
Rémi Verschelde 62f134bd7e Merge pull request #91724 from KoBeWi/regional_textures
Add support for AtlasTexture in `draw_polygon()`
2024-05-30 11:47:47 +02:00
bruvzg 19839d9553 Fix Window position preview in the editor. 2024-05-29 11:56:06 +03:00
Adriano Orioli edd2e6e37f make InstancePlaceholder in charge of node reference resolution 2024-05-28 11:51:49 +02:00
bruvzg 64d789aba7 Fix get_position_with_decorations and get_size_with_decorations for embedded windows. 2024-05-24 20:10:36 +03:00
aaronp64 aa07828503 Fix tooltip mouse position conversion for scaled controls
Viewport used get_global_transform().xform_inv(mpos) to convert the mouse position to the control's local coordinates when getting the control's tooltip, which does not handle scale correctly.  This impacted tooltips for any controls that depended on the position to determine what tooltip to show, including RichTextLabel, ItemList, Tree, and probably some others.  This change is for Viewport to use get_global_transform_with_canvas().affine_inverse().xform(mpos) for tooltips instead, to match what we do for Viewport::_gui_call_input.

Fixes #91984
2024-05-15 17:28:58 -04:00
aaronp64 ca8e3d4923 Fix tooltip content being cut off at some display scales
When getting the minimum size for a tooltip, we get the value as a Vector2.  Window::set_size() takes a Vector2i, so this size was getting truncated.  At certain display scales, this could be enough to cut off part of the tooltip.  Updated to call Vector2::ceil() to round up before calling Window::set_size()

Fixes #91958
2024-05-15 09:19:00 -04:00