Thaddeus Crews
e1b3387513
Merge pull request #108704 from wjt/xdg-portal-inhibit
...
Support XDG Inhibit portal
2025-11-24 15:59:56 -06:00
Thaddeus Crews
2135cb1707
Merge pull request #103749 from Rindbee/fix-cannot-input-after-restarting-the-input-method-on-x11
...
Fix cannot input Chinese after restarting the input method on X11
2025-11-19 11:03:58 -06:00
Will Thompson
1a3a254e26
Support XDG Inhibit portal
...
Previously, on Linux and BSD, inhibiting the screensaver was handled
using the org.freedesktop.ScreenSaver D-Bus API. Unfortunately, this API
is not available in a Flatpak sandbox. (This is because there is a
desire to tie inhibit sessions to a specific app and visible window; but
the org.freedesktop.ScreenSaver API does not support this.)
As a result, when using the Flatpak build of the Godot Editor (or a
Flatpak-ed build of a game) and using a controller to play a game, the
session will become idle after a few minutes.
The XDG desktop portal -- which is already used for color-picking, file
choosing, and querying the system theme -- has an Inhibit interface that
provides a superset of the functionality of the
org.freedesktop.ScreenSaver API, and is available to any sandboxed app.
Refactor code for making XDG portal requests that was previously
duplicated for the FileChooser and ColorPicker portal code. Check the
portal version to determine whether these portals can be used:
- FileChooser portal version 3 is required due to the use of the
"directory" parameter.
- On the Settings portal, the only addition in version 2 is the
ReadOne() method which is not used here, so version 1 suffices.
- On the Screenshot portal, the only addition in version 2 is the
"interactive" parameter to the Screenshot() method; this code only
uses the PickColor() method, so version 1 suffices.
Then, add support for the Inhibit portal. Use it if available and if
running in a sandbox. Prefer to use org.freedesktop.ScreenSaver if not
running in a sandbox, even if the portal is available, because (at least
in the GNOME 43 implementation of the portal) it does not work correctly
if the portal cannot map the request to a running app. This adds a small
amount of complexity to the implementation, but supporting both APIs is
necessary anyway (there are many systems in the wild that support
org.freedesktop.ScreenSaver but not the desktop portal).
Fixes https://github.com/godotengine/godot/issues/108634
2025-11-17 11:46:28 +01:00
Pāvels Nadtočajevs
281c74550a
Make utterance_id 64-bit.
2025-11-07 10:21:20 +02:00
Haoyu Qiu
48575336e8
X11: Fix minimize/maximize buttons can't be hidden
2025-10-29 19:37:23 +08:00
Thaddeus Crews
685fa3281c
Merge pull request #111580 from timothyqiu/x11-fullscreen
...
X11: Fix fullscreen exit behavior
2025-10-27 10:01:52 -05:00
Pāvels Nadtočajevs
cf21565c77
[X11] Fix keyboard_get_label_from_physical errors when used on key without label.
2025-10-18 19:25:55 +03:00
Haoyu Qiu
66e5bce653
X11: Fix memory leak in screen_get_refresh_rate
2025-10-14 20:30:05 +08:00
Haoyu Qiu
0f81e8c7fe
X11: Fix fullscreen exit behavior
2025-10-13 15:03:13 +08:00
Haoyu Qiu
7680190768
Revert "Fix the sliding window problem in linux occur due to reparenting of the window during the decoration via tracking the parent of the window"
...
This reverts commit 932afc3bf5 .
2025-10-13 15:03:13 +08:00
Thaddeus Crews
4ea49aecaf
Merge pull request #110990 from timothyqiu/x11-min-max
...
X11: Fix minimization of maximized windows
2025-10-10 10:26:02 -05:00
Thaddeus Crews
5935a32e32
Core: Cleanup headers in core/config
...
- `MainLoop` now forward-declared in `OS`
2025-10-06 09:20:56 -05:00
Thaddeus Crews
d1d28c0bcf
Merge pull request #111223 from Ivorforce/remove-iterator-include
...
Replace `std::size` usage with `std_size` to avoid `<iterator>` include.
2025-10-06 09:06:49 -05:00
chocola-mint
ead282ff13
Remove file_access.h and script_backtrace.h includes from logger.h.
2025-10-05 17:49:23 +09:00
Lukas Tenbrink
1db0a60dc0
Replace std::size usage with std_size to avoid <iterator> include.
2025-10-05 00:26:11 +02:00
Haoyu Qiu
12f8c78231
X11: Fix minimization of maximized windows
2025-09-28 12:19:54 +08:00
Mounir Tohami
1b697aff38
X11 input: prevent non-printable keys from producing empty Strings
2025-09-18 06:56:22 +03:00
Thaddeus Crews
94b5658cd2
Merge pull request #106798 from gelvinp/avoid_xcb_crash
...
Workaround X11 crash issue
2025-09-16 09:48:55 -05:00
Pāvels Nadtočajevs
0edb6bd4a0
[Linux/BSD] Initialize DBus only once.
2025-08-22 09:26:11 +03:00
Haoyu Qiu
9051b546c6
X11: Fix memory leak when using window embedding
2025-06-28 22:50:51 +08:00
Rémi Verschelde
c596d93478
Merge pull request #106175 from akien-mga/linux-build-no-dbus
...
Linux: Fix build with `dbus=no` or `threads=no`
2025-06-09 00:44:12 +02:00
Pāvels Nadtočajevs
2d93e004b9
Cleanup and unify DisplayServer screen methods and documentation.
2025-06-02 08:03:48 +03:00
Thaddeus Crews
6228c7c762
Merge pull request #105451 from bruvzg/x11_splash
...
Fix X11 boot splash scaling.
2025-05-28 09:47:42 -05:00
Patrick Gelvin
6842a5861b
Workaround X11 crash issue
2025-05-25 08:07:24 -07:00
Rémi Verschelde
e9e8ddc5be
Linux: Fix build with dbus=no or threads=no
2025-05-09 15:26:13 +02:00
Thaddeus Crews
01fc9aee6c
Core: Modernize C headers with C++ equivalents
2025-05-02 08:23:01 -05:00
Thaddeus Crews
ad40939b6f
Core: Replace C math headers with C++ equivalents
...
- Minor restructuring to ensure `math_funcs.h` is the central point for math functions
2025-04-16 15:49:02 -05:00
Pāvels Nadtočajevs
5ddaaa93e6
Fix X11 boot splash scaling.
2025-04-16 10:45:43 +03:00
Thaddeus Crews
0d267e7b1e
Core: Add dedicated BitField template
2025-04-11 11:53:26 -05:00
Thaddeus Crews
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
Thaddeus Crews
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
Pāvels Nadtočajevs
4310cb82b8
AccessKit integration for macOS, Linux, and Windows.
2025-04-08 20:25:47 +03:00
Pāvels Nadtočajevs
9abe2e5294
Add uri_file_decode to handle + in file names.
2025-04-07 23:49:17 +03:00
Pāvels Nadtočajevs
f37fb49739
Add separate minimize_disabled and maximize_disabled window flags.
2025-04-07 18:58:11 +03:00
Pāvels Nadtočajevs
52009b52d2
Detect KDE/LXQt and swap OK/Cancel buttons to Windows style.
2025-04-03 12:47:11 +03:00
Yufeng Ying
4f4031a675
Replace size() == 0 with is_empty().
2025-04-02 19:18:43 +08:00
Pāvels Nadtočajevs
4638ade13f
Enable TTS on demand, instead of fully disabling it when project setting is not set.
2025-04-01 15:24:46 +03:00
Kiro
23129a66ed
Replace append_utfx with direct String::utfx
2025-03-30 19:56:38 +02:00
Lukas Tenbrink
ffa6ef220b
Use append_ instead of parse_ for String methods.
2025-03-27 17:51:02 +01:00
Pāvels Nadtočajevs
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
Thaddeus Crews
49fcd4ce46
Merge pull request #101546 from bruvzg/portal_color_picker
...
[Linux] Implement native color picker.
2025-03-17 10:52:29 -05:00
Pāvels Nadtočajevs
18f6c33d72
[DisplayServer] Implement get_accent_color on Linux.
2025-03-14 09:05:03 +02:00
风青山
456261cd7e
Fix cannot input Chinese after restarting the input method on X11
...
Register a callback via `XRegisterIMInstantiateCallback()` to detect
whether the input method is available again.
2025-03-10 17:18:02 +08:00
Pāvels Nadtočajevs
fe38504aa0
[X11] Fix native dialog parent selection condition.
2025-03-08 16:28:25 +02:00
Thaddeus Crews
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
bruvzg
3e4e6e6c0c
Improve native file dialog parent window selection.
2025-03-06 17:15:39 +02:00
Thaddeus Crews
1f2d135444
Merge pull request #103526 from jamie-pate/fix_103522
...
Fix check for is_maximized in x11 to require both horizontal and vert
2025-03-05 12:07:41 -06:00
Pāvels Nadtočajevs
6ed12bfc5d
[Linux/BSD] Offload RenderingDevice creation test to subprocess.
2025-03-04 13:18:26 +02:00
Jamie Pate
4f14f722b8
Fix check for is_maximized in x11 to require both horizontal and vertical
...
Fixes #103522
Persistent window state doesn't work if your window is 'tiled' in X11
gnome
3.x checks for `horz && vert`
4396e98834/platform/x11/os_x11.cpp (L1708)
4.x also checked `horz && vert` until this change where it was switched
to `horz || vert`
524f061c01 (diff-05f85bc3bf96d384f6b96260c758e63e10bbdd52b04f8ccb34649372e7bc1f48R1382)
The corrected logic is:
Check `horz && vert` for 'is_maximized'
Check `horz || vert` for 'can_maximize'
2025-03-03 15:45:21 -08:00
Hilderin
0c384e7217
Replace error to info messages for embedded game
2025-02-26 19:32:25 -05:00