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
b9b3c3fe14
Merge pull request #104889 from MJacred/patch-1
...
Clarify that `Window.dpi_changed` signal is supported on Linux (Wayland)
2025-04-01 19:53:36 -05:00
179ce63dbf
Update class docs: dpi_changed signal is supported on Linux (Wayland)
2025-04-01 19:40:36 +02: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
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
db7c94bd65
[Windows] Remove visible WINDOW_MODE_FULLSCREEN border by setting window region.
2025-03-11 20:50:55 +02:00
3e4e6e6c0c
Improve native file dialog parent window selection.
2025-03-06 17:15:39 +02:00
05ca80632d
[Linux] Implement native color picker.
2025-02-03 16:30:44 +02:00
47f553ae0b
Delegate to the DisplayServer the task of handling mouse_mode
...
- Add `MOUSE_MODE_MAX` and various index checks
2025-01-28 11:22:27 -05:00
11e111bca4
Add a note to DisplayServer.get_display_safe_area() method documentation
...
Add a note to clarify that the DisplayServer.get_display_safe_area() method is currently only implemented on Android and iOS, and that it returns screen_get_usable_rect(SCREEN_OF_MAIN_WINDOW) as a fallback on other platforms.
2025-01-14 22:29:54 -03:00
f8724e41a0
Merge pull request #101538 from bruvzg/wdrag_ftr
...
[DisplayServer] Add missing `FEATURE_WINDOW_DRAG` flag to Windows, X11 and Wayland display servers.
2025-01-14 18:29:47 +01:00
4d1cfc1784
Merge pull request #101061 from syntaxerror247/first-pr-2025
...
Android: Implement support for `native dialog`
2025-01-14 15:05:59 +01:00
2e99d84e87
[DisplayServer] Add missing FEATURE_WINDOW_DRAG flag to Windows, X11 and Wayland display servers.
2025-01-14 15:26:32 +02:00
cb9ee099ac
Android: Implement support for native dialog
...
This adds support for DisplayServer::dialog_show() on Android, aligning it with the functionality already available on macOS and Windows.
2025-01-14 15:03:14 +05:30
b252867145
[macOS/Windows] Add Emoji & Symbols context menu item to LineEdit/TextEdit to show system character picker.
2025-01-10 09:25:34 +02:00
7f0b4e58b0
Implement DisplayServer.window_start_resize.
2025-01-07 07:58:02 +02:00
44f871ff72
Merge pull request #100898 from Summersay415/wayland-issue
...
Fix exclusive fullscreen on Wayland
2025-01-06 22:47:53 +01:00
e1f129cb52
Support MIME types in file dialog filters on macOS and Linux.
2025-01-04 22:05:35 +02:00
8c1742c957
Fix exclusive fullscreen on Wayland
2025-01-02 21:49:49 +07:00
7b42fb969e
Merge pull request #100685 from raulsntos/dotnet/collection-expressions
...
[.NET] Use collection expressions in docs
2024-12-23 11:15:15 -06:00
072ff85f82
[.NET] Use collection expressions in docs
...
As of C# 12 we can now use collection expressions to reduce some boilerplate when initializing collections.
2024-12-21 02:28:59 +01:00
9d2a4c03be
Embedding game process in editor
2024-12-18 17:52:42 -05:00
4e46e8beb7
Merge pull request #100464 from bruvzg/start_drag_port
...
Implement `window_start_drag` on Windows and Linux.
2024-12-18 00:39:56 +01:00
cb5b1ecc25
Merge pull request #100200 from syntaxerror247/android-base-color
...
Android: Support for `base color` retrieval
2024-12-18 00:39:45 +01:00
70b24c3d16
Android: Support for base color retrieval
2024-12-18 02:14:48 +05:30
293be04ec8
Implement window_start_drag on Windows and Linux.
2024-12-17 16:49:27 +02:00
9fece033ab
[macOS, Windows] Add support for excluding windows from a screenshot.
2024-12-10 11:00:13 +02:00
84650f2018
Implement DisplayServer.beep.
2024-12-03 12:43:26 +02:00
b248d66265
[macOS] Use native window drag for the custom editor title bars.
2024-12-02 17:40:27 +02:00
141737d168
Docs: Standardize names and terms for renderers
2024-11-29 19:53:52 -08:00
3413c6ce9d
Update screen_get_scale documentation.
2024-11-25 19:07:05 +05:30
121097db0a
[DisplayServer] [docs] Improve readability of get_screen_from_rect()
...
Co-authored-by: Micky <66727710+Mickeon@users.noreply.github.com >
2024-11-14 16:28:51 -08:00
4ba533d0b5
[DisplayServer] [docs] Describe edge cases for get_screen_from_rect()
...
Describes output when multiple screens intersect with rectangle or rectangle has no area.
2024-11-13 22:02:42 -08:00
7b866f302f
[Android] Implement support for accent color retrieval
2024-11-01 16:19:09 +05:30
b2130efb31
[Android] Implement native file picker support
2024-10-30 14:53:02 +05:30
0dfd18c84b
[DisplayServer] Add feature flag for native file dialog access to user/res and options
2024-10-30 14:13:43 +05:30
be5d7f757d
[Android] Implement native input dialog support
2024-10-29 20:02:08 +05:30
07e759b74a
Merge pull request #97771 from dsnopek/openxr-linux-egl
...
OpenXR: Add support for Wayland on Linux
2024-10-25 13:04:08 -05:00
827961e4e5
Update documentation for Android immersive mode
2024-10-22 22:55:43 +05:30
f8c4a683d7
Core: Add DisplayServer flag for sharp corners
2024-10-18 11:20:21 -05:00
256699ee31
OpenXR: Add support for Wayland on Linux
2024-10-04 11:44:05 -05:00
25f439c573
[DisplayServer] Implement has_hardware_keyboard method for Android and iOS.
2024-10-02 20:09:48 +03:00
e98aaf1caa
Merge pull request #94477 from RedMser/typos-batch-1
...
Fix various typos
2024-08-28 00:12:12 +02:00
1e81a946cc
Merge pull request #94412 from dsnopek/xr-always-render
...
Always render when XR is enabled, even if no OS windows can draw
2024-07-18 15:38:14 +02:00
f9258ff928
Fix typos
2024-07-17 18:53:03 +02:00
7a5a8597eb
Always render when XR is enabled, even if no OS windows can draw
2024-07-17 08:19:21 -05:00
8904764a6c
Clarify clipboard_get_image()
2024-07-13 21:34:39 +02:00
714effdf07
[DisplayServer] Add error messages and descriptions to callbacks.
2024-05-28 17:36:54 +03:00
628c81d2d9
[DisplayServer] Add method to check if window transparency is supported and enabled.
2024-05-23 15:23:18 +03:00