Commit Graph

16802 Commits

Author SHA1 Message Date
Riteo 84d3adcf2f Wayland: Implement native sub-windows
The backend is now mature enough to not explode with multiple windows
but the `DisplayServer` API still cannot meet some guarantees required
by the various Wayland protocols we use. To meet those guarantees this
patch adds three new elements to the DisplayServer API, with relative
handling logic for `Window` and `Popup` nodes:

 - `WINDOW_EVENT_FORCE_CLOSE`, which tells a window to *forcefully*
close itself and ensure a proper cleanup of its references, as Wayland
enforces this behavior;

 - `WINDOW_FLAG_POPUP_WM_HINT`, which explicitly declares a window as a
"popup", as Wayland enforces this distinction and heuristics are not
reliable enough;

 - `FEATURE_SELF_FITTING_WINDOWS`, which signals that the compositor can
fit windows to the screen automatically and that nodes should not do
that themselves.

Given the size of this feature, this patch also includes various
`WaylandThread` reworks and fixes including:

 - Improvements to frame wait logic, with fixes to various stalls and a
configurable (through a `#define`) timeout amount;

 - A proper implementation of `window_can_draw`;

 - Complete overhaul of pointer and tablet handling. Now everything is
always accumulated and handled only on each respective `frame` event.
This makes their logic simpler and more robust.

 - Better handling of pointer leaving and pointer enter/exit event
sending;

 - Keyboard focus tracking;

 - More solid window references using IDs instead of raw pointers as
windows can be deleted at any time;

 - More aggressive messaging to window nodes to enforce rects imposed by
the compositor.
2025-04-04 20:23:25 +02:00
Thaddeus Crews cba1afd63a Merge pull request #103639 from TokageItLab/delta-modifiers
Add `delta` argument to `_process_modification()` as `_process_modification_with_delta(delta)` and expose `advance()` at `Skeleton3D`
2025-04-03 16:50:23 -05:00
Thaddeus Crews 9bbda47794 Merge pull request #104776 from BrotherShort/TextEdit-VScroll-max-tolerance
Fix TextEdit VScroll max tolerance
2025-04-03 16:50:14 -05:00
Thaddeus Crews cb8cb95bdd Merge pull request #104962 from beicause/pctex-fix-create-from-image
PortableCompressedTexture: Fix create compressed format from image
2025-04-03 16:50:13 -05:00
LuoZhihao 4be432cbec PortableCompressedTexture: Fix create compressed format from image 2025-04-04 03:35:32 +08:00
Silc Lizard (Tokage) Renew 96200abb97 Add p_delta argument to _process_modification() and expose advance() 2025-04-03 23:58:54 +09:00
Thaddeus Crews b6c8155439 Merge pull request #104958 from bruvzg/ok_cancel_swap
Make `swap_cancel_ok` setting 3-state instead of boolean.
2025-04-03 09:27:55 -05:00
Thaddeus Crews 4e6f3a5605 Merge pull request #104915 from aaronfranke/org-ifdef
Organize ifdefs for disabling navigation, physics, and XR
2025-04-03 09:27:53 -05:00
Thaddeus Crews f5e0b869f4 Merge pull request #104242 from smix8/navmesh_changed
Emit `changed` signal after baking navigation mesh
2025-04-03 09:27:52 -05:00
Thaddeus Crews 6ef89f12bc Merge pull request #104167 from TokageItLab/spring-inside-tree
Add `is_inside_tree()` check to SpringBoneSimulator3D
2025-04-03 09:27:49 -05:00
BrotherShort 1077fdb15a fix TextEdit VScroll max tolerance
newline

Co-Authored-By: Kit Bishop <kitbdev@gmail.com>
2025-04-03 21:22:57 +08:00
Pāvels Nadtočajevs 2f8b96e8a2 Make swap_cancel_ok setting 3-state instead of boolean. 2025-04-03 13:08:11 +03:00
Aaron Franke 2800948d61 Organize ifdefs for disabling navigation, physics, and XR 2025-04-02 08:24:24 -07:00
smix8 565ea927d2 Emit changed signal after baking navigation mesh
Emits changed signal after baking navigation mesh.
2025-04-02 16:54:48 +02:00
Yufeng Ying 7a1a970c25 size() <= 0 and size() < 1. 2025-04-02 19:18:44 +08:00
Yufeng Ying 4f4031a675 Replace size() == 0 with is_empty(). 2025-04-02 19:18:43 +08:00
Michael Alexsander 556933306a Allow to compile templates without navigation features 2025-04-01 11:53:35 -03:00
Thaddeus Crews d52b84e472 Merge pull request #103993 from aaronfranke/geometry-segment
Directly use segment points in Geometry2D/3D function parameters
2025-04-01 08:01:34 -05:00
Pāvels Nadtočajevs 19f360d65a Add font import flag to toggle modulation of colored glyphs. 2025-04-01 13:36:10 +03:00
Thaddeus Crews 8f6bb119f4 Merge pull request #100602 from KoBeWi/over_100_changes_in_50_random_files_aka_the_best_kind_of_PR
Add templated version of `ObjectDB::get_instance()`
2025-03-31 12:03:47 -05:00
Aaron Franke c1acc839a8 Directly use segment points in Geometry2D/3D function parameters 2025-03-30 16:25:59 -07:00
Thaddeus Crews e471465d39 Merge pull request #104370 from BrotherShort/no-arrow-no-root-offset
Tree: Fix offset relationship lines with Hide Folding
2025-03-30 09:06:02 -05:00
Thaddeus Crews bc5c739ff8 Merge pull request #104708 from Alex2782/tree_cleanup
`Tree`: apply comment style guidelines and remove unused variables.
2025-03-30 09:06:00 -05:00
Thaddeus Crews ba3482926d Merge pull request #104444 from Delsin-Yu/fix-disabled-recursive-behavior-not-applied-on-ready
[GUI] Fix reparenting control does not update recursive mode cache properly
2025-03-29 10:16:35 -05:00
Thaddeus Crews 780cf03051 Merge pull request #104556 from Ivorforce/string-extend-instead-of-parse
Use `append_` instead of `parse_` for `String` methods.
2025-03-29 10:16:33 -05:00
DE YU 04608fae4a [GUI] Fix an issue where setting a control's recursive mode to disabled does not work on ready. 2025-03-29 06:34:11 +08:00
Alexander Hartmann b96e8d5886 Tree: apply comment style guidelines and remove unused variables.
Co-Authored-By: Tomasz Chabora <2223172+KoBeWi@users.noreply.github.com>
Co-Authored-By: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
2025-03-28 18:03:39 +01:00
Rémi Verschelde 1a367f3a68 Merge pull request #104685 from bruvzg/rtl_vpad
[RTL] Improve vertical padding.
2025-03-28 17:30:44 +01:00
Rémi Verschelde e8bc75f056 Merge pull request #103373 from YeldhamDev/build_remove_physics
Allow to compile templates without physics servers
2025-03-28 17:30:03 +01:00
Rémi Verschelde 3b90bb56ad Merge pull request #89782 from KoBeWi/stdArrayList
Use initializer list in Arrays
2025-03-28 17:29:40 +01:00
BrotherShort f660cdb7cf Tree: Fix offset relationship lines with Hide Folding 2025-03-28 15:05:24 +01:00
Michael Alexsander 5ad414d046 Allow to compile templates without physics servers 2025-03-28 11:00:44 -03:00
Rémi Verschelde fd8c010541 Merge pull request #104677 from kleonc/tile_map_layer_self_modulation_fix
Fix applying `TileMapLayer.self_modulate` to tiles
2025-03-28 14:33:53 +01:00
Rémi Verschelde ca1f445403 Merge pull request #104662 from bruvzg/tab_pad_size
[RTL] Fix size/alignment of tables with padded cells.
2025-03-28 14:33:38 +01:00
Rémi Verschelde f4425aecdf Merge pull request #104638 from beicause/fix-ci-regression-test-project
CI: Fix godot regression project test
2025-03-28 14:33:30 +01:00
Rémi Verschelde 0251fc4476 Merge pull request #104399 from scgm0/Improve-Popup-content_scale_factor
Improve Popup `content_scale_factor`
2025-03-28 14:32:58 +01:00
Rémi Verschelde 1116fc7b0f Merge pull request #104201 from BrotherShort/folding-move-to-2nd-col
Fix folding arrow and relationship lines move to 2nd column.
2025-03-28 14:32:35 +01:00
Rémi Verschelde 1f127770fc Merge pull request #103943 from dugramen/scroll-while-dragging
Scroll `EditorInspector` while drag & drop hovering near the edges
2025-03-28 14:32:20 +01:00
Rémi Verschelde d01ffe4ad2 Merge pull request #103708 from Ivorforce/linear-casts-fast-virtual-casts-bad
Optimize `Object::cast_to` by assuming no virtual and multiple inheritance, gaining 7x throughput over `dynamic_cast`.
2025-03-28 14:32:04 +01:00
Rémi Verschelde e81eb3f1e9 Merge pull request #102354 from YYF233333/style_iterator
Use iterator pattern instead of manually traverse `List::Element *`
2025-03-28 14:31:40 +01:00
Yyf2333 22b5ec17fb Using iterator pattern instead of List::Element *.
Co-authored-by: Adam Scott <ascott.ca@gmail.com>
2025-03-28 13:29:15 +08:00
Lukas Tenbrink ffa6ef220b Use append_ instead of parse_ for String methods. 2025-03-27 17:51:02 +01:00
kobewi bc9d0c7835 Add templated version of ObjectDB::get_instance() 2025-03-27 15:43:23 +01:00
Lukas Tenbrink dd9dc75a83 Optimize Object::cast_to by assuming no virtual and multiple inheritance, gaining 8x throughput over dynamic_cast.
Add `-Wvirtual-inheritance` to compiler warnings as a sanity check.
2025-03-27 15:39:53 +01:00
Pāvels Nadtočajevs a2919f8127 [RTL] Improve vertical padding. 2025-03-27 08:51:21 +02:00
Malcolm Anderson 60a9c8e2ea Add node configuration warnings for nested clipping and CanvasGroups
Many subclasses of CanvasItem had to have their `get_configuration_warnings` methods updated so they would display the warning as well

Make clip children warning update whenever clip_children_mode is modified

Update scene/main/canvas_item.h

Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>

Add warning if ancestor of clipping CanvasItem is CanvasGroup

Add warnings for CanvasGroup when ancestors are CanvasGroups or clip children
2025-03-26 21:40:49 -07:00
kleonc 943bec398f Fix applying TileMapLayer.self_modulate to tiles 2025-03-27 03:15:53 +01:00
Pāvels Nadtočajevs 42edbcd748 [RTL] Fix size/alignment of tables with padded cells. 2025-03-26 20:50:59 +02:00
kobewi 75881f8322 Use initializer list in Arrays 2025-03-26 18:38:15 +01:00
dugramen 3c85281610 Scroll inspector while drag hovering near the edge 2025-03-26 12:37:12 -04:00