behaviour-tree-test/scene/gui
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
..
aspect_ratio_container.cpp Typo fix: rename SortableVisbilityMode 2025-01-19 00:33:39 +01:00
aspect_ratio_container.h Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00
base_button.cpp Fix menus and dropdowns requiring two clicks 2025-01-08 10:07:37 -05:00
base_button.h Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00
box_container.cpp Typo fix: rename SortableVisbilityMode 2025-01-19 00:33:39 +01:00
box_container.h Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00
button.cpp Merge pull request #104230 from bruvzg/start_clip 2025-03-18 14:42:44 -05:00
button.h Merge pull request #104230 from bruvzg/start_clip 2025-03-18 14:42:44 -05:00
center_container.cpp Typo fix: rename SortableVisbilityMode 2025-01-19 00:33:39 +01:00
center_container.h Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00
check_box.cpp Merge pull request #95736 from nongvantinh/checkbox-states-colors 2025-03-10 10:01:18 -05:00
check_box.h Merge pull request #95736 from nongvantinh/checkbox-states-colors 2025-03-10 10:01:18 -05:00
check_button.cpp Merge pull request #95736 from nongvantinh/checkbox-states-colors 2025-03-10 10:01:18 -05:00
check_button.h Merge pull request #95736 from nongvantinh/checkbox-states-colors 2025-03-10 10:01:18 -05:00
code_edit.compat.inc
code_edit.cpp Replace size() == 0 with is_empty(). 2025-04-02 19:18:43 +08:00
code_edit.h Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00
color_mode.cpp Fix ColorPicker RAW alpha slider theme 2025-02-03 01:48:29 +01:00
color_mode.h Refactor ColorPicker shapes 2025-03-18 18:57:26 +01:00
color_picker.cpp Merge pull request #99515 from KoBeWi/shapez.godot 2025-03-19 14:53:57 +01:00
color_picker.h Merge pull request #99515 from KoBeWi/shapez.godot 2025-03-19 14:53:57 +01:00
color_picker_shape.cpp Refactor ColorPicker shapes 2025-03-18 18:57:26 +01:00
color_picker_shape.h Refactor ColorPicker shapes 2025-03-18 18:57:26 +01:00
color_rect.cpp
color_rect.h Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00
container.cpp Typo fix: rename SortableVisbilityMode 2025-01-19 00:33:39 +01:00
container.h Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00
control.cpp Merge pull request #104444 from Delsin-Yu/fix-disabled-recursive-behavior-not-applied-on-ready 2025-03-29 10:16:35 -05:00
control.h [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
dialogs.compat.inc Optimize Object::cast_to by assuming no virtual and multiple inheritance, gaining 8x throughput over dynamic_cast. 2025-03-27 15:39:53 +01:00
dialogs.cpp Rework AcceptDialog's ok button text 2025-03-11 22:52:50 +01:00
dialogs.h Rework AcceptDialog's ok button text 2025-03-11 22:52:50 +01:00
file_dialog.cpp Replace size() == 0 with is_empty(). 2025-04-02 19:18:43 +08:00
file_dialog.h Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00
flow_container.cpp Typo fix: rename SortableVisbilityMode 2025-01-19 00:33:39 +01:00
flow_container.h Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00
graph_edit.compat.inc [GraphEdit] Make connections a property 2024-12-16 02:28:34 +01:00
graph_edit.cpp Directly use segment points in Geometry2D/3D function parameters 2025-03-30 16:25:59 -07:00
graph_edit.h Merge pull request #101439 from JekSun97/Provide-connection_map-to-GraphEdit 2025-03-11 16:53:48 -05:00
graph_edit_arranger.cpp Fix various typos 2025-01-08 14:47:42 +02:00
graph_edit_arranger.h Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00
graph_element.cpp Typo fix: rename SortableVisbilityMode 2025-01-19 00:33:39 +01:00
graph_element.h Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00
graph_frame.cpp Remove unused headers in scene. 2024-12-24 00:40:09 +08:00
graph_frame.h Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00
graph_node.cpp Merge pull request #103822 from ASamBlur/fix-graphnode-port-positions-for-expanded-children 2025-03-12 10:31:37 -05:00
graph_node.h Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00
grid_container.cpp Typo fix: rename SortableVisbilityMode 2025-01-19 00:33:39 +01:00
grid_container.h Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00
item_list.cpp size() <= 0 and size() < 1. 2025-04-02 19:18:44 +08:00
item_list.h Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00
label.cpp Merge pull request #103728 from bruvzg/lbl_min_sz_ex_sp 2025-03-19 12:26:51 +01:00
label.h Add properties to configure space trimming on line break. 2025-03-16 16:15:37 +02:00
line_edit.cpp fix selection in LineEdit 2025-03-19 10:50:47 +01:00
line_edit.h Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00
link_button.cpp Remove unused headers in scene. 2024-12-24 00:40:09 +08:00
link_button.h Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00
margin_container.cpp Typo fix: rename SortableVisbilityMode 2025-01-19 00:33:39 +01:00
margin_container.h Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00
menu_bar.cpp Add templated version of ObjectDB::get_instance() 2025-03-27 15:43:23 +01:00
menu_bar.h Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00
menu_button.cpp Change print warnings to config ones for popups that need transparency 2025-01-09 15:59:56 -03:00
menu_button.h Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00
nine_patch_rect.cpp
nine_patch_rect.h Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00
option_button.cpp Add auto translate mode for items in PopupMenu and OptionButton 2025-03-09 23:50:11 +08:00
option_button.h Add auto translate mode for items in PopupMenu and OptionButton 2025-03-09 23:50:11 +08:00
panel.cpp
panel.h Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00
panel_container.cpp Typo fix: rename SortableVisbilityMode 2025-01-19 00:33:39 +01:00
panel_container.h Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00
popup.cpp Wayland: Implement native sub-windows 2025-04-04 20:23:25 +02:00
popup.h Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00
popup_menu.compat.inc
popup_menu.cpp Improve Popup content_scale_factor 2025-03-26 23:47:40 +08:00
popup_menu.h Add auto translate mode for items in PopupMenu and OptionButton 2025-03-09 23:50:11 +08:00
progress_bar.cpp Make scan for projects threaded 2024-12-12 22:31:32 +01:00
progress_bar.h Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00
range.cpp Replace size() == 0 with is_empty(). 2025-04-02 19:18:43 +08:00
range.h Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00
reference_rect.cpp
reference_rect.h Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00
rich_text_effect.cpp
rich_text_effect.h Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00
rich_text_label.compat.inc [RTL] Add cell option to control if cell is shrinked to its contents width. 2025-01-13 21:44:06 +02:00
rich_text_label.cpp size() <= 0 and size() < 1. 2025-04-02 19:18:44 +08:00
rich_text_label.h Merge pull request #100602 from KoBeWi/over_100_changes_in_50_random_files_aka_the_best_kind_of_PR 2025-03-31 12:03:47 -05:00
scroll_bar.cpp Remove unused headers in scene. 2024-12-24 00:40:09 +08:00
scroll_bar.h Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00
scroll_container.cpp Scroll inspector while drag hovering near the edge 2025-03-26 12:37:12 -04:00
scroll_container.h Scroll inspector while drag hovering near the edge 2025-03-26 12:37:12 -04:00
SCsub
separator.cpp
separator.h Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00
slider.cpp Implement properties that recursively disables children's focus & mouse filter. 2025-03-07 22:34:58 +08:00
slider.h Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00
spin_box.cpp Remove ABS in favor of Math::abs 2025-03-19 13:52:40 +01:00
spin_box.h Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00
split_container.cpp Typo fix: rename SortableVisbilityMode 2025-01-19 00:33:39 +01:00
split_container.h Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00
subviewport_container.cpp
subviewport_container.h Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00
tab_bar.cpp Add tab spacing modifier for tabs in TabBar and TabContainer 2025-03-05 16:55:37 -05:00
tab_bar.h Merge pull request #103214 from aaronjyoder/master 2025-03-24 10:00:54 -05:00
tab_container.cpp Add templated version of ObjectDB::get_instance() 2025-03-27 15:43:23 +01:00
tab_container.h Merge pull request #103214 from aaronjyoder/master 2025-03-24 10:00:54 -05:00
text_edit.compat.inc Prevent tooltip from showing when hovering past end of script line 2025-01-18 00:02:06 +01:00
text_edit.cpp Merge pull request #104776 from BrotherShort/TextEdit-VScroll-max-tolerance 2025-04-03 16:50:14 -05:00
text_edit.h [TextEdit] Use actual indentation offset instead of space width for wrapped lines. 2025-03-19 12:50:43 +02:00
texture_button.cpp Improve use of Ref.is_null/valid 2024-12-23 16:35:02 -05:00
texture_button.h Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00
texture_progress_bar.cpp TextureProgressBar minimum size selection as maximum among all textures 2025-01-23 07:14:11 +00:00
texture_progress_bar.h Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00
texture_rect.cpp Improve use of Ref.is_null/valid 2024-12-23 16:35:02 -05:00
texture_rect.h Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00
tree.cpp Merge pull request #104370 from BrotherShort/no-arrow-no-root-offset 2025-03-30 09:06:02 -05:00
tree.h Tree: apply comment style guidelines and remove unused variables. 2025-03-28 18:03:39 +01:00
video_stream_player.cpp fix(VideoStreamPlayer): Redraw when video resolution changes during playback 2025-03-16 22:14:29 +01:00
video_stream_player.h fix(VideoStreamPlayer): Redraw when video resolution changes during playback 2025-03-16 22:14:29 +01:00
view_panner.cpp Use initializer list in Arrays 2025-03-26 18:38:15 +01:00
view_panner.h Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00