Commit Graph

1092 Commits (87863e06be2207d72af955634e33637c9ed40c7d)

Author SHA1 Message Date
Rémi Verschelde 342ba8063e
Merge pull request #112361 from Calinou/export-dedicated-server-no-shader-baker
Disable shader baker when exporting as dedicated server
2025-12-09 19:54:22 +07:00
Thaddeus Crews e98e8c555a
Merge pull request #113341 from DSOE1024/linuxbsd-xfce-exo-open
Implement XFCE support in os_linuxbsd.cpp
2025-12-08 11:53:52 +07:00
DSOE1024 b982794b23 Implement XFCE support in os_linuxbsd.cpp
Added support for XFCE by executing 'exo-open' alongside 'kde-open'.
Refactor error handling in os_linuxbsd.cpp
2025-12-08 21:21:45 +07:00
Berke Güzel 48c50bacba Wayland: Fix laggy window resize
scale_changed and size_changed were incorrectly initialized to true,
causing redundant WindowRectMessage and DPI change events to be pushed
on every configure event regardless of actual changes.
2025-12-07 13:29:19 +07:00
Rémi Verschelde 8981cede94
Merge pull request #113235 from timothyqiu/motif-close
X11: Skip Motif function hints when borderless
2025-12-05 12:55:49 +07:00
Adam Scott 10c7cb878a
Add new monospace related hint strings
- Add hint string `monospace` for `PROPERTY_HINT_{NONE,PASSWORD,PLACEHOLDER_TEXT}` to set the `LineEdit` font monospaced.
- Add hint string `monospace` for `PROPERTY_HINT_MULTILINE_TEXT` to set the `TextEdit` font monospaced.
- Add hint string `no_wrap` for `PROPERTY_HINT_MULTILINE_TEXT` to make the `TextEdit` not wrap lines automatically.

Also:
- Fix issue with `EditorPropertyMultilineText` not updating font properly.
- Add `EditorPropertyMultilineText` tweak flags.
- Add support with GDScript `@export_multiline`.
2025-12-03 12:57:40 +07:00
Rémi Verschelde 71d4ded745
Merge pull request #113279 from Ivorforce/tracy-gdscript-codeloc
Add support for profiling GDScript with tracy.
2025-12-02 14:16:56 +07:00
Rémi Verschelde 1c7ef74f4f
Merge pull request #113346 from deralmas/wl-keyboard-saga/unify-keys
Wayland: Unify key handling logic
2025-12-01 11:50:11 +07:00
Dery Almas 9a814b4444 Wayland: Unify key handling logic
Previously we had different logic for direct key presses and client-side
key repetition, as one queued up input events and the other dispatched
them directly (client-side key repetition is run from the main thread).

I kinda figured out that this difference doesn't really matter, as we
can queue them up before the thread message dispatching logic. That's
exactly what we do now, which allows us to make a single method for both
of them, making the code much clearer and simplifying future maintenance.

This patch also includes a tiny fixup in the compose logic, which checks
for the validity of the generated key event before actually working with
it. The cases in which we can end up with an invalid reference are very
few, so it's not the end of the world, but it's still absolutely a good
idea to check, to avoid nasty surprises down the line.
2025-11-30 05:11:40 +07:00
LanzaSchneider 3a965d50fe Fix incorrect format specifier for bool in Wayland libdecor 2025-11-29 10:20:27 +07:00
Lukas Tenbrink acefbbbbcd Add support for profiling GDScript with tracy.
This adds macro `GodotProfileZoneGroupedFirstScript`, and uses interning for speedy lookups.

Co-authored-by: Samuel Nicholas <nicholas.samuel@gmail.com>
2025-11-28 16:36:36 +07:00
Rémi Verschelde e28ef68957
Merge pull request #113135 from deralmas/buffer-jaywalking
Wayland: Fix trailing garbage error while using the embedder on Jay
2025-11-27 21:48:12 +07:00
Haoyu Qiu f694c64ac4 X11: Skip Motif function hints when borderless 2025-11-27 21:53:28 +07:00
Rémi Verschelde 1667e6fcce
Merge pull request #113195 from teromene/master
Include xkb-compose in `wayland_thread.h`
2025-11-26 23:44:49 +07:00
teromene b8ef67586d Include xkb-compose in wayland_thread.h. Fixes builds without SOWRAP_ENABLED 2025-11-26 16:00:08 +07:00
Michael Alexsander 69ff129e33
Fix error message when closing the project manager on Wayland 2025-11-26 11:16:08 +07:00
Thaddeus Crews 0ebb11041b
Merge pull request #113138 from deralmas/embedder-oopsies
Wayland: Fix Wayland driver in export templates
2025-11-25 07:06:59 +07:00
Dery Almas 8fb195e20d Wayland: Fix Wayland driver in export templates
I might have accidentally put the socket connection logic inside a
`TOOLS_ENABLED` `#ifdef` xD
2025-11-25 03:36:16 +07:00
Dery Almas 1fb101f7a5 Wayland: Fix trailing garbage error while using the embedder on Jay
`send_wayland_message` takes in the number of words, not its byte size.
This meant that we were sending quite a bit of out-of-bounds stuff
alongside the four arguments required by
`xdg_positioner::set_anchor_rect`, which triggered an assertion on Jay.

This didn't pop up before because the C wayland server library does not
seem to check this, but it's a valid (and useful!) assertion
for other server implementations nonetheless.

This patch switches to the initializer_list syntax to make the intent
clearer.
2025-11-25 01:34:52 +07:00
Thaddeus Crews e1b3387513
Merge pull request #108704 from wjt/xdg-portal-inhibit
Support XDG Inhibit portal
2025-11-24 15:59:56 +07:00
Thaddeus Crews 7477823ad5
Merge pull request #113068 from deralmas/writing-with-style
Wayland: Implement compose and dead key support
2025-11-24 10:21:31 +07:00
Dery Almas 8ced63315a Wayland: Implement compose and dead key support 2025-11-22 23:30:23 +07:00
ArchercatNEO 4dd5c83f72 Wayland: compile with libdecor=no 2025-11-22 08:29:05 +07:00
Thaddeus Crews 235a32ad11
Merge pull request #113023 from dsnopek/tracy-framemark-on-linux
Correctly mark frame start for profilers (Tracy/Perfetto) on Linux
2025-11-21 18:37:40 +07:00
David Snopek cb7d00efad Correctly mark frame start for profilers (Tracy/Perfetto) on Linux 2025-11-21 14:59:55 +07:00
metamuffin 6145b0ca29
Add Image.load_exr_from_buffer and enable tinyexr by default 2025-11-21 18:58:26 +07:00
Thaddeus Crews 688a6d02b2
Merge pull request #107435 from deralmas/wl-proxy
Wayland: Implement game embedding
2025-11-20 11:10:51 +07:00
Dery Almas bbf65ae72f Wayland: Implement game embedding
This patch introduces a new protocol proxy, which multiplxes Wayland
clients into a single connection, allowing us to redirect calls (e.g.
create toplevel -> create subsurface). Mixed with some state tracking
and emulation, we can embed a full-featured client into the editor.
2025-11-19 21:24:18 +07: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 +07: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 +07:00
Thaddeus Crews e46c2ea3fa
Merge pull request #112379 from bruvzg/tts64id
Make `utterance_id` 64-bit.
2025-11-14 14:23:17 +07:00
Thaddeus Crews 04bc282ae7
Merge pull request #104851 from Ivorforce/tracy
Add `profiler` option to `SCons` builds, with support for `tracy` and `perfetto`.
2025-11-12 11:24:15 +07:00
风青山 5cb5eb59f9
Fix Chinese characters were not displayed correctly in DBusMessage
On OS with Chinese locale, you might receive the following message
when running an editor using the `--verbose` option:

```
ERROR: Error on D-Bus communication: æªæ	¾å°è¯·æ±ç
                                                         设置
   at: read_setting (platform/linuxbsd/freedesktop_portal_desktop.cpp:144)
```
2025-11-11 08:18:07 +07:00
Lukas Tenbrink c3747884da Add some important profiling hooks. 2025-11-08 00:08:48 +07:00
Lukas Tenbrink e80194e31f Add `profiler` option to `SCons` builds.
Add `tracy` option to `profiler`. If set, a tracy profiling client will be injected into the Godot binary.

# Conflicts:
#	platform/linuxbsd/godot_linuxbsd.cpp
2025-11-08 00:08:45 +07:00
Pāvels Nadtočajevs 281c74550a
Make `utterance_id` 64-bit. 2025-11-07 10:21:20 +07:00
Thaddeus Crews 2d7380c3ff
Merge pull request #111493 from deralmas/racing-the-thread
Wayland: Defer event thread initialization to late initialization
2025-11-06 08:13:13 +07:00
Thaddeus Crews 90cab74af9
Merge pull request #110248 from KoBeWi/unexpected_include_hell
Misc cleanup in EditorExportPlatform
2025-11-04 16:32:39 +07:00
Thaddeus Crews c5e6fde0c7
Merge pull request #112142 from timothyqiu/motif-wm-hints
X11: Fix minimize/maximize buttons can't be hidden
2025-11-04 16:32:24 +07:00
Hugo Locurcio 09f9dc157a
Disable shader baker when exporting as dedicated server
Dedicated server exports don't perform any rendering, so there's no point
in including baked shaders. Doing so saves a few MBs in PCK size if the
shader baker was enabled in the export options.
2025-11-04 00:25:08 +07:00
Pāvels Nadtočajevs 286e578b02
[Linux] Add SSE4.2 support runtime check. 2025-11-01 12:48:10 +07:00
kobewi 1c1c3200e4 Misc cleanup in EditorExportPlatform 2025-10-29 22:25:37 +07:00
Haoyu Qiu 48575336e8 X11: Fix minimize/maximize buttons can't be hidden 2025-10-29 19:37:23 +07:00
Thaddeus Crews af77ae8137
Merge pull request #111874 from deralmas/not-so-fast
Wayland: Set window parent before commit
2025-10-28 10:15:29 +07:00
Riteo Siuga 4df96fc7ab Wayland: Set window parent before commit
Fixes a timing issue where dialogs got configured right before having
their parent set. This gave compositors the time to resize/rearrange the
dialog as if it were a normal window, only to be marked as "floating"
right away. On niri, this manifested as huge dialog windows.

This is achieved with the addition of a `p_parent_id` parameter to
`window_create`, akin to its popup counterpart.

`window_create` now also accepts a single `Size2i` parameter instead of
two integers, in line with the rest of the `WaylandThread` API. The
original idea was to have a very "barebones" API, akin to the `drivers/`
directory, but that didn't pan out.
2025-10-28 04:10:28 +07:00
Thaddeus Crews 685fa3281c
Merge pull request #111580 from timothyqiu/x11-fullscreen
X11: Fix fullscreen exit behavior
2025-10-27 10:01:52 +07:00
Travis Wrightsman 1e8ead50dc Use pkg-config for recast flags
Now that recastnavigation upstream ships a pkg-config file, Godot can
rely on it for getting the build-time configuration.
2025-10-25 15:52:41 +07:00
Thaddeus Crews 0caf8057a7
Merge pull request #108412 from wjt/push-qmklovyxnnom
linux/bsd/mac: Use pkill to stop remote instance over SSH
2025-10-23 11:03:57 +07: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 +07:00
Thaddeus Crews f3ebee1f79
Merge pull request #111211 from superherointj/enet-warning
System-provided ENet warning
2025-10-16 12:48:07 +07:00