Commit Graph

1591 Commits

Author SHA1 Message Date
Rémi Verschelde
d7e3fce995
Merge pull request #68566 from Mickeon/node-print-orphans-static
Make `Node.print_orphan_nodes()` static
2022-11-24 18:55:30 +01:00
Rémi Verschelde
885fc1f3e7
Merge pull request #68568 from Mickeon/node-parent-busy-error
Update "Parent node is busy" errors to use `Callable.call_deferred()`
2022-11-23 23:11:06 +01:00
Micky
c6a355b9e8 Update "Parent node is busy" errors to use Callable.call_deferred()
Also fixes outdated method names in the messages.
2022-11-23 17:39:34 +01:00
Markus Sauermann
f8df18ef47 Fix CanvasTransform on RenderingServer when Viewport enters Tree
Previously the Viewport didn't initialize its canvas transform in the
RenderingServer.
2022-11-22 23:04:23 +01:00
Fabio Alessandrelli
145f07c037 [Net] Fix HTTPRequest gzip with high compression ratio.
Decompress each body chunk over multiple iterations, this causes more
reallocations, but it ensures decompression will not fail no matter the
compression ratio.
2022-11-20 22:41:14 +01:00
Silc Renew
b9d1550590 Add option to get_path_to() to get the shortest path with unique name 2022-11-19 15:06:25 +09:00
Hugo Locurcio
4b13093251
Allow all lossless image formats to be used for VRS texture project setting
WebP can also be lossy, but the class reference now warns about the
requirement to use a lossless format for the VRS texture to work correctly.
2022-11-18 22:21:28 +01:00
Uxeron
721e51ac28 Fixed _get_drag_data getting incorrect position on scaled controls 2022-11-18 19:10:57 +02:00
Rémi Verschelde
6d2a7cb46d
Merge pull request #68709 from MewPurPur/instance-begone-part3
Remove more instances of 'instance' being used as a verb
2022-11-16 14:41:42 +01:00
VolTer
3b4f5f8a04 Remove more instances of 'instance' being used as a verb 2022-11-16 14:01:53 +01:00
Haoyu Qiu
3b08d0e852 Fix crash of queue_free() when main loop is not SceneTree 2022-11-15 08:25:25 +08:00
Rémi Verschelde
03f30855d1
Merge pull request #67831 from kleonc/scene-tree-fix-storing-removed-nodes
`SceneTree` Fix storing removed nodes to be skipped by the group calls
2022-11-14 23:27:41 +01:00
Rémi Verschelde
0dbb632116
Merge pull request #68564 from Mickeon/node-no-remove-group-error
Strip ERR_FAIL from `Node.remove_from_group()`
2022-11-14 23:24:14 +01:00
Markus Sauermann
3b14f0334c Remove redundant Variant-types initializations 2022-11-14 19:35:19 +01:00
Rémi Verschelde
d639bb87a7
Merge pull request #68272 from Sauermann/fix-windowfocus-on-resize
Fix Windowfocus on resizing
2022-11-14 16:38:00 +01:00
Markus Sauermann
5cf6ebce63 Drop physics mouseover as soon as the mouse moves over a Control 2022-11-14 12:07:26 +01:00
Micky
a1c10dbbd8 Strip ERR_FAIL from Node.remove_from_group()
Also simplifies group check removing unnecessary `!data.grouped.has`
2022-11-13 00:01:18 +01:00
Micky
9b42268467 Make Node.print_orphan_nodes() static 2022-11-12 17:55:42 +01:00
Rémi Verschelde
5c7af7f391
Merge pull request #68418 from Sauermann/fix-escape-dnd
Allow canceling Drag and Drop with the Escape-Key
2022-11-11 16:49:09 +01:00
Markus Sauermann
226044b944 Allow canceling Drag and Drop with the Escape-Key
This patch implements the functionality to cancel Drag and Drop
by using the escape key or more general, the ui_cancel action.

Since this would be the third location, where the finalization of
Drag and Drop would have to be implemented, that functionality was
put into the private function _perform_drop.

Simplified gui.drag_data.get_type() != Variant::NIL to gui.dragging
because they are equivalent.
2022-11-08 19:10:16 +01:00
Markus Sauermann
7445ab95fc Fix SubViewport with default size being pink
A SubViewport with default-size doesn't display its content, but shows
pink color, until it is resized.
This patch makes sure, that the size gets set during initialization.
2022-11-07 09:23:32 +01:00
Markus Sauermann
65647e9c7d Fix Windowfocus on resizing
When resizing a non-focused window, the previously focused
Window got resized.
This patch grabs focus for the actually resized window, before
starting with the resizing.
2022-11-04 22:24:00 +01:00
Rémi Verschelde
d4bf7f4458
Fixup Clang -Wtype-limits warnings introduced by #52350 2022-11-02 22:36:01 +01:00
Markus Sauermann
022d24a9ae Fix Viewport root order after Node2D raise 2022-11-02 21:45:00 +01:00
Rémi Verschelde
30e4e7c083
Merge pull request #67917 from Faless/mp/4.x_auth
[MP] Add peer authentication support to the default MultiplayerAPI.
2022-11-02 18:53:38 +01:00
Rémi Verschelde
604abb434f
Merge pull request #52350 from BimDav/viewport_canvas_cull
Added Viewport canvas cull mask feature
2022-11-02 17:14:24 +01:00
Fabio Alessandrelli
33dda2e68a [MP] Remove connection state signals from MultiplayerPeer.
Now handled directly by the MultiplayerAPI implementation.
2022-11-02 15:17:23 +01:00
Rémi Verschelde
ad0349c0e3
Merge pull request #59479 from Sauermann/fix-rootorder-on-layerchange
Update root order on layer change
2022-11-02 14:20:24 +01:00
Fabio Alessandrelli
0a0e99cadc
Merge pull request #67982 from Faless/mp/4.x_disconnect_close
[MP] Add MultiplayerPeer disconnect_peer, close.
2022-11-01 20:35:04 +01:00
BimDav
fcb9be66a2 Viewport canvas cull mask feature
Co-authored-by: Valentin Zagura <puthre@gmail.com>
2022-10-31 14:09:49 +01:00
Rémi Verschelde
5947f22be9
Merge pull request #67578 from KoBeWi/GEDITOR
Unify usage of GLOBAL/EDITOR_GET
2022-10-31 13:15:58 +01:00
Rémi Verschelde
71a6aba3d7
Merge pull request #67710 from KoBeWi/a_bit_local_global_transform
Remove error condition from get_global_transform()
2022-10-31 11:59:08 +01:00
Rémi Verschelde
be126d42d4
Merge pull request #67588 from KoBeWi/if(!GDVIRTUAL_CALL)don't
Simplify GDVIRTUAL_CALL calls
2022-10-31 11:55:56 +01:00
Rémi Verschelde
dcd86f9848
Merge pull request #67046 from Cykyrios/fix-invalid-tooltip-position
Fix invalid tooltip position
2022-10-31 11:05:19 +01:00
Rémi Verschelde
420eb1aa34
Merge pull request #67445 from Zylann/rename_queue_delete
Rename queue_delete => queue_free
2022-10-31 10:51:18 +01:00
Rémi Verschelde
32548f9608
Merge pull request #67467 from timothyqiu/who-ami-i
Fix get_path() error when calling get_node()
2022-10-31 10:33:51 +01:00
Fabio Alessandrelli
39f3d9d59e [MP] Add MultiplayerPeer disconnect_peer, close.
Update ENet, WebRTC, and WebSocket to support peer disconnection and
unify the close function.
2022-10-28 21:18:01 +02:00
Micky
0e0a233859 Fix spacing of few PROPERTY_HINT_ENUM hint_strings 2022-10-28 14:51:26 +02:00
Clay John
8fd92ed867
Merge pull request #64710 from MinusKube/window-size-crash
Prevent windows from having a size greater than device limit
2022-10-27 10:02:44 -07:00
Clay John
e1caa8797b
Merge pull request #67043 from clayjohn/clip_children
Improve behaviour of clip_children by clipping to parent alpha value but still retaining parent color
2022-10-27 09:59:27 -07:00
Clay John
2f2c138b44
Merge pull request #67926 from Rindbee/fix_call_shortcut_input
Fix calling `_call_shortcut_input` on a node that has been removed
2022-10-27 09:56:55 -07:00
Clay John
d1cc93af89
Merge pull request #67832 from Sauermann/fix-remove-unnecessary-casts
Remove unnecessary casts
2022-10-27 09:47:34 -07:00
Fabio Alessandrelli
7536d15fe3 [MP] Let MultiplayerAPI handle packet relaying and peer signaling.
MultiplayerPeer changes:

- Adds is_server_relay_supported virtual method

Informs the upper MultiplayerAPI layer if it can signal peers connected
to the server to other clients, and perform packet relaying among them.

- Adds get_packet_channel and get_packet_mode virtual methods

Allows the MultiplayerAPI to retrieve the channel and transfer modes to
use when relaying the last received packet.

SceneMultiplayerPeer changes:

- Implement peer signaling and packet relaying when the MultiplayerPeer
  advertise they are supported.

ENet, WebRTC, WebSocket changes:

- Removed custom code for relaying from WebSocket and ENet, and let it
  be handled by the upper layer.
- Update WebRTC to split create_client, create_server, and create_mesh,
  with the latter behaving like the old initialize with
  "server_compatibility = false", and the first two supporting the upper
  layer relaying protocol.
2022-10-27 18:08:58 +02:00
Rindbee
c77349ecb7 Fix calling _call_shortcut_input on a node that has been removed
Nodes may have been deleted by shortcuts. For example, when switching
scenes with `Ctrl` + `Tab` / `Ctrl` + `Shift` + `Tab`, some controls
will be deleted and recreated.
2022-10-27 14:05:51 +08:00
Marc Gilleron
7543a5e014 Rename queue_delete => queue_free
# Conflicts:
#	editor/plugins/tiles/tiles_editor_plugin.cpp
2022-10-24 22:07:02 +01:00
kleonc
471f2da9b6 SceneTree Fix storing removed nodes to be skipped by the group calls 2022-10-24 21:38:19 +02:00
Markus Sauermann
5ee449efec Remove unnecessary casts
button_add_item and button_add are both Button

p_parent is a Node3D

CanvasItem can never be cast to Viewport
2022-10-24 15:59:18 +02:00
kobewi
2ff676a696 Remove error condition from get_global_transform() 2022-10-21 14:52:43 +02:00
kobewi
4efa851d7f Add methods to get target filter and repeat 2022-10-19 14:41:42 +02:00
kobewi
d06a8320e5 Simplify GDVIRTUAL_CALL calls 2022-10-19 00:05:48 +02:00
kobewi
e48c5daddf Unify usage of GLOBAL/EDITOR_GET 2022-10-18 19:01:48 +02:00
Haoyu Qiu
64c20a51c1 Fix get_path() error when calling get_node() 2022-10-16 10:48:59 +08:00
Markus Sauermann
39e49a8bdd Expose Viewport::get_screen_transform to GDScript 2022-10-15 23:37:59 +02:00
Miguel Gonzalez Sanchez
a97a00bf02
Rename pos -> index on Node 2022-10-14 19:56:34 +01:00
clayjohn
b6f44859d7 Implement multiple clip_children modes for CanvasItems 2022-10-14 08:02:28 -07:00
Markus Sauermann
b1d6b34662 Always update Viewport's last_mosue_position
When the mouse cursor is over a embedded Window, the Viewport's
last_mouse_position did not get updated.
This patch makes sure that the update happens on every InputEventMouse.

Document canvas layer of embedded Windows.
2022-10-14 12:51:45 +02:00
Rémi Verschelde
f32f5b70d8 Merge pull request #67348 from Mickeon/salvage-a-dear-comment
Comment not to remove `data` structs in some Nodes
2022-10-13 18:40:58 +02:00
Micky
de9e08da76 Comment not to remove data structs in some Nodes 2022-10-13 15:52:35 +02:00
Eric M
a3ed9e6f2c Move Shortcut Context to Control and ensure that shortcut_input adheres to contexts. Also ensure that controls with no context are only triggered AFTER nodes which do have a context. 2022-10-13 21:07:19 +10:00
Rémi Verschelde
15b68f7601 Merge pull request #67232 from bruvzg/popup_edit
Improve Popup / Window behavior in the edited scene tree.
2022-10-12 14:45:14 +02:00
Nikola Bunjevac
d7e9b8af9a Set window size after setting new limits
Otherwise this can fail as the size may not fit
into current limits. This is problematic at least
on X11.
2022-10-11 17:16:20 +02:00
Rémi Verschelde
e413d1c9c3 Merge pull request #67104 from Calinou/add-viewport-transparent-project-setting
Add a project setting to make the root viewport transparent
2022-10-11 09:28:43 +02:00
bruvzg
2e1fcbe14b
Prevent Popups it the edited scene tree from closing on focus loss. Hide irrelevant Popup flags from the editor inspector. 2022-10-11 08:55:00 +03:00
kobewi
b754df2b99 Fix node name casing issues
Co-authored-by: ryburnj <jordanryburn@gmail.com>
2022-10-10 22:31:26 +02:00
Hugo Locurcio
bab8497fa2
Add a project setting to make the root viewport transparent
This allows recording videos with a transparent background without
having to create a script.
2022-10-09 00:16:07 +02:00
Cykyrios
f0d7934055 Fix invalid tooltip position 2022-10-07 22:43:49 +02:00
bruvzg
0103af1ddd
Fix MSVC warnings, rename shadowed variables, fix uninitialized values, change warnings=all to use /W4. 2022-10-07 11:32:33 +03:00
Rémi Verschelde
2b9a145158 Merge pull request #66869 from Sauermann/fix-transform-det-0-spam
Fix Transform2D det == 0 spam for SubViewports
2022-10-04 12:05:37 +02:00
Markus Sauermann
650cc16b05 Fix Transform2D det == 0 spam for SubViewports 2022-10-04 11:48:39 +02:00
Rémi Verschelde
1c6e8f7e62 Merge pull request #66712 from Cykyrios/fix-invalid-popup-position
Fix invalid popup position for embedded popups
2022-10-04 11:19:50 +02:00
Rémi Verschelde
38dd753715 Merge pull request #66859 from Rindbee/reset-gui_parent
Make sure to reset the tooltip of its gui_parent when the viewport is removed
2022-10-04 10:32:51 +02:00
Rindbee
9a05ea231a Make sure to reset the tooltip of its gui_parent when the viewport is removed 2022-10-04 11:58:02 +08:00
Cykyrios
2237df6273 Fix invalid popup position for embedded popups 2022-10-03 21:23:32 +02:00
Rémi Verschelde
f501e4f665 Unix: Remove now unnecessary I/O defines, cleanup
- `LIBC_FILEIO_ENABLED` wasn't defined anywhere, even in _other platforms_.
- `NO_NETWORK` is also never defined. It probably isn't enough anyway to
  disable network APIs in the current codebase.
- `UNIX_SOCKET_UNAVAILABLE` is never defined in this code but used by some
  other platforms, clarify that.
- `NO_STATVFS` can be removed as Android supports it since API level 19,
  which is our current min SDK level. It's also only used for
  `DirAccessUnix::get_space_left()` which is anyway overridden by
  `DirAccessJAndroid::get_space_left()` so it shouldn't make a difference.
  * Fixed documentation for `DirAccess.get_space_left()`.
- `NO_FCNTL` is likely also a remnant of early Android days, in current NDK
  r23 it seems to be available. Also cleaned up unused `fcntl.h` includes.
- `NO_ALLOCA` is never defined, and we use alloca in many places now.
2022-10-03 12:33:41 +02:00
EricEzaM
2a7e61457a Allow shortcut input to be JoypadButton. 2022-10-02 17:11:18 +10:00
Rémi Verschelde
e3464c8fc8 Merge pull request #58995 from Sauermann/fix-mouse-cursor-change-2
Update mouse cursor shape after changes
2022-09-28 20:50:05 +02:00
Rémi Verschelde
7562932eb2 Merge pull request #66160 from dpalais/double_time
Use double instead of real_t type for time-related parameters and variables
2022-09-27 10:04:10 +02:00
Dave Palais
0c46068af0 Change time parameters and variables to double type
Addresses #65313
2022-09-26 13:52:54 -05:00
kobewi
a4c3551dc6 Force window position if spawned outside screen 2022-09-26 13:44:25 +02:00
bruvzg
0dab11afa4
[macOS extend-to-title] Add scene/project name to the editor title, fix incorrect window button position/order when system primary language is RTL. 2022-09-22 23:09:56 +03:00
Rémi Verschelde
ae2d9be0fe
Merge pull request #63740 from Faless/net/4.x_http_request_decompress
[HTTP] Implement streaming decompression.
2022-09-20 22:29:16 +02:00
Fabio Alessandrelli
172a9e0b24 [HTTPRequest] Cleanup, refactor deferred call. 2022-09-20 18:39:10 +02:00
Fabio Alessandrelli
98047e791a [HTTPRequest] Body streaming decompresison.
Using a StreamPeerGZIP (which acts as a ringbuffer).
2022-09-20 18:39:10 +02:00
Marc Gilleron
aed3822a93 Change return type of get_configuration_warnings to PackedStringArray 2022-09-19 16:43:15 +01:00
Markus Sauermann
52da6f1a44 Update mouse cursor shape after changes
This fixes some cases where the mouse cursor shape did not change automatically, but instead required a MouseMove to update.
2022-09-18 17:15:38 +02:00
Rémi Verschelde
d79040e7eb Merge pull request #65496 from MinusKube/popup-capture-mouse-bug
Fix MOUSE_MODE_CAPTURED not working correctly with popups
2022-09-16 09:23:40 +02:00
Rémi Verschelde
d347d2f585 Merge pull request #65550 from MinusKube/small-popup-bug
Use embedding viewport instead of parent viewport to determine popup rect
2022-09-16 09:22:57 +02:00
David Snopek
e82cd46a74 Fix XR rendering in 'opengl3' driver and expose true size via the Viewport node 2022-09-14 20:55:56 -05:00
SaracenOne
cc4bda8500 Add ability to flag classes as experimental or deprecated. 2022-09-11 00:11:33 +01:00
Rémi Verschelde
8899f1eec2
Merge pull request #65595 from KoBeWi/minus_children
Allow negative indices in `move_child()`
2022-09-10 09:59:15 +02:00
kobewi
31e62ca827 Allow negative indices in move_child() 2022-09-10 03:54:04 +02:00
VolTer
e19f7b2407 Remove Remove and Skip 2022-09-09 23:44:31 +02:00
MinusKube
00e153f85a Use embedding viewport instead of parent viewport to determine popup rect 2022-09-09 01:22:46 +02:00
Rémi Verschelde
7936b3cc4c Merge pull request #60108 from KoBeWi/arise_to_top
Rename raise() to move_to_front()
2022-09-08 09:23:31 +02:00
Rémi Verschelde
de739530c2 Merge pull request #63596 from Jayman2000/issue-27640
Rename `change_scene()` and `change_scene_to()`
2022-09-08 09:22:03 +02:00
Rémi Verschelde
a51dc70dfb Merge pull request #65460 from Faless/net/4.x_ssl_to_tls_more
[Net] Rename "ssl" references to "tls" in methods and members.
2022-09-08 09:20:19 +02:00
Fabio Alessandrelli
a95d792420 [Net] Rename "ssl" references to "tls" in methods and members. 2022-09-08 03:24:23 +02:00
Jason Yundt
69963ffaa3 Rename change_scene() and change_scene_to()
Before this change, the SceneTree had methods named “change_scene” and
“change_scene_to”. One of them accepted a String as a parameter and the
other accepted a PackedScene, but you couldn’t tell which one was which
just by looking at their names.

This change renames those two methods to “change_scene_to_file” and
“change_scene_to_packed”. These new names came from this suggestion [1].
These new names make the difference between the two methods more clear
and hint at the fact that there’s more than one change_scene method.

[1]: <https://github.com/godotengine/godot/issues/27640#issuecomment-1081870955>

Fixes #27640.
2022-09-07 17:06:33 -04:00
MinusKube
06b86fad0d Fix MOUSE_MODE_CAPTURED not working correctly with popups 2022-09-07 19:31:57 +02:00
smix8
d7f75fab60 Remove / Replace old Navigation Debug Visualization
- removes / replaces leftovers from old navigation debug code
- cleanes SceneTree and ProjectSettings from old navigation debug
2022-09-07 18:30:35 +02:00