Commit Graph

948 Commits

Author SHA1 Message Date
2bf7184ed9 Merge pull request #103865 from Repiteo/scons/__has_include
SCons: Remove `check_c_headers`
2025-04-25 11:36:06 -05:00
041c69db2f Merge pull request #101454 from Riteo/fifo_ftw
Wayland: Handle `fifo_v1` and clean up suspension logic
2025-04-25 11:36:04 -05:00
007717faf9 SCons: Remove check_c_headers
• Can instead check for headers directly with `__has_include`, a C++17 feature
2025-04-25 11:30:39 -05:00
e61edcadb8 Print script backtrace in the crash handler. 2025-04-25 09:15:20 +03:00
48882f3ca4 Wayland: Handle fifo_v1 and clean up suspension logic
Before, the WSI was unfortunately quite broken and we had work around it
by manually pacing frames. Needless to say it was not an ideal solution.

Now, the WSI can make use of the new fifo_v1 protocol to work properly.
If it's available, we'll trust the WSI by disabling manual frame pacing.

While we're at it, let's clean up the suspension code a bit by removing
some duplicated stuff and handling the suspension state through a switch
case.
2025-04-20 18:05:35 +02:00
0d267e7b1e Core: Add dedicated BitField template 2025-04-11 11:53:26 -05:00
cad0cd94ef Merge pull request #105225 from bruvzg/ds_gdsoft
Change `DisplayServerMacOS` from `GDCLASS` to `GDSOFTCLASS`. Add `GDSOFTCLASS` to other display servers.
2025-04-10 16:53:42 -05:00
cade15a163 Merge pull request #92475 from AThousandShips/string_replace_char
Add `String::replace_char(s)` methods for performance and convenience
2025-04-10 10:18:16 -05:00
722ddf6e6f Merge pull request #103802 from Rindbee/set-unsupported-to-true-on-error-in-FreeDesktopScreenSaver
Set `unsupported` to true on error in `FreeDesktopScreenSaver`
2025-04-10 10:18:14 -05:00
889410dcda Add String::replace_char(s) methods for performance and convenience 2025-04-10 13:08:45 +02:00
0497522933 Change DisplayServerMacOS from GDCLASS to GDSOFTCLASS. Add GDSOFTCLASS to other display servers. 2025-04-10 09:18:58 +03:00
7a6c3b309f Merge pull request #105130 from bruvzg/uri_fix_plus
Add uri_file_decode to handle + in file names.
2025-04-09 18:11:56 -05:00
a8598cd8e2 Merge pull request #71542 from bruvzg/export_project_settings
[Export] Use project settings overrides with the target preset features instead of current platform features.
2025-04-09 08:51:47 -05:00
4362b11557 Merge pull request #103405 from van800/shakhov/macosx
Fix `.sln` project generation logic for Rider to support all OS and all C++ toolchains
2025-04-09 08:51:45 -05:00
c6739f64df [Export] Use project settings overrides with the target preset features instead of current platform features. 2025-04-08 21:22:37 +03:00
295c0f5bd2 Merge pull request #105129 from Riteo/soft-serve
Wayland: Fix error spam for closed windows
2025-04-08 12:32:48 -05:00
e6a61b1ecc Merge pull request #76829 from bruvzg/ac_kit_direct
Implement screen reader support using AccessKit library.
2025-04-08 12:32:47 -05:00
4310cb82b8 AccessKit integration for macOS, Linux, and Windows. 2025-04-08 20:25:47 +03:00
6ff86e49cf Fix .sln project generation logic for Rider to support all OS and all C++ toolchains
Co-authored-by: Andreia Gaita <shana@spoiledcat.net>
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2025-04-08 15:40:05 +02:00
9abe2e5294 Add uri_file_decode to handle + in file names. 2025-04-07 23:49:17 +03:00
36d96f7f37 Wayland: Fix error spam for closed windows
I ported the new softclass macro too blindly. Apparently the various
window messages did not cast properly, skipping some important "deleted
window" checks.
2025-04-07 20:22:08 +02:00
f37fb49739 Add separate minimize_disabled and maximize_disabled window flags. 2025-04-07 18:58:11 +03:00
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
52009b52d2 Detect KDE/LXQt and swap OK/Cancel buttons to Windows style. 2025-04-03 12:47:11 +03:00
1f56d96cf2 Merge pull request #104893 from Repiteo/scons/external-includes-alt
SCons: Add `CPPEXTPATH` for external includes
2025-04-02 07:48:03 -05:00
f25fc34439 SCons: Add CPPEXTPATH for external includes 2025-04-02 07:29:08 -05:00
4f4031a675 Replace size() == 0 with is_empty(). 2025-04-02 19:18:43 +08:00
4638ade13f Enable TTS on demand, instead of fully disabling it when project setting is not set. 2025-04-01 15:24:46 +03:00
abd565eb19 Merge pull request #104844 from Ivorforce/gdsoftclass
Add and require `GDSOFTCLASS` for `Object` subclasses that want to cast but do not use `GDCLASS`.
2025-03-31 19:02:03 -05:00
fa0a3c9c6e Add and require GDSOFTCLASS for Object subclasses that want to cast but do not use GDCLASS. 2025-03-31 20:49:50 +02:00
23129a66ed Replace append_utfx with direct String::utfx 2025-03-30 19:56:38 +02:00
ffa6ef220b Use append_ instead of parse_ for String methods. 2025-03-27 17:51:02 +01:00
d35e22ff22 Merge pull request #104415 from zlago/patch-1
Export: Change unportable `echo` in the Linux/macOS debug launcher script
2025-03-24 10:00:57 -05:00
f09ee0171a Style: Begin integrating simple .clangd fixes 2025-03-22 13:24:35 -05:00
7e0ede1a16 change unportable echo in the linux/macos debug launcher script
`-n` and `-e` are not guaranteed to be supported by posix `echo`
2025-03-21 17:31:37 +01:00
5d794f83ed Tweak a few miscellaneous localization strings 2025-03-20 13:12:44 +01:00
f6891b0305 [DisplayServer] Decouple show_window(MAIN_WINDOW_ID) from DisplayServer constructor, update project manager size/position after DS init. 2025-03-19 11:23:04 +02:00
49fcd4ce46 Merge pull request #101546 from bruvzg/portal_color_picker
[Linux] Implement native color picker.
2025-03-17 10:52:29 -05:00
18f6c33d72 [DisplayServer] Implement get_accent_color on Linux. 2025-03-14 09:05:03 +02:00
28451c001a Merge pull request #103815 from bruvzg/x11_fd_cond
[X11] Fix native dialog parent selection condition.
2025-03-14 00:08:45 +01:00
97ee05e9b7 Rename version defines to GODOT_VERSION_* to match GDExtension godot-cpp 2025-03-12 11:11:38 -07:00
991d01fb52 Merge pull request #103891 from shahriarlabib000/update_readme
Update logo/run icon path in platform READMEs
2025-03-10 21:05:55 -05:00
331a43a9d8 Add String::remove_char(s) methods for performance and convenience 2025-03-10 13:19:28 +01:00
25a8b808d3 update logo/run icon path in README 2025-03-10 12:03:41 +06:00
7fd154c4b4 Set unsupported to true on error in FreeDesktopScreenSaver
This avoids possible memory leaks when the editor exits.
2025-03-09 11:10:27 +08:00
466590d0ec Use get_slicec instead of get_slice for single character splitters 2025-03-08 20:36:37 +01:00
fe38504aa0 [X11] Fix native dialog parent selection condition. 2025-03-08 16:28:25 +02:00
324512e11c Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00
3d9b37911d Merge pull request #103011 from Repiteo/style/svgo-newline
Style: Ensure svgs have trailing newlines
2025-03-07 15:12:41 -06:00
c937b6d180 Merge pull request #102419 from Ivorforce/std-size
Use `std::size` instead of `sizeof(a) / sizeof(a[0])` pattern throughout the codebase.
2025-03-07 15:12:25 -06:00