Rémi Verschelde
0fee2724f0
Merge pull request #100751 from YYF233333/force_regex_with_editor
...
Force build editor with regex module, remove checking code
2025-01-07 23:17:35 +01:00
Pāvels Nadtočajevs
8d911b2554
[Window] Expose `start_drag` and `start_resize` methods (for both native and embedded windows).
2025-01-07 23:35:14 +02:00
Summersay415
f6d22da94b
Update official export templates architecture list in docs
2025-01-07 20:28:25 +07:00
Yufeng Ying
34d8255947
Force build editor with regex module, remove checking code.
...
Fix include.
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2025-01-07 19:43:23 +08:00
Pāvels Nadtočajevs
7f0b4e58b0
Implement `DisplayServer.window_start_resize`.
2025-01-07 07:58:02 +02:00
Rémi Verschelde
cc32e46360
Merge pull request #101135 from Hilderin/fix-embedding-not-working-intermittently
...
Fix embedding failing intermittently
2025-01-06 22:49:05 +01:00
Rémi Verschelde
44f871ff72
Merge pull request #100898 from Summersay415/wayland-issue
...
Fix exclusive fullscreen on Wayland
2025-01-06 22:47:53 +01:00
Rémi Verschelde
e06cac212b
Merge pull request #99893 from kiroxas/avoidUTF8ParsingWhenNotNecessary
...
Avoid duplicated `utf8()` calls
2025-01-06 22:47:12 +01:00
Hilderin
2f061df7b0
Fix embedding not working intermittently
2025-01-06 08:04:57 -05:00
Pāvels Nadtočajevs
e1f129cb52
Support MIME types in file dialog filters on macOS and Linux.
2025-01-04 22:05:35 +02:00
Rémi Verschelde
35cf29bb21
Merge pull request #100715 from buresu/fix-wayland-ime-input
...
Fix last character deletion in Wayland IME input
2025-01-03 00:48:55 +01:00
Summersay415
8c1742c957
Fix exclusive fullscreen on Wayland
2025-01-02 21:49:49 +07:00
Thaddeus Crews
3994e561ea
Merge pull request #100827 from OS-of-S/fixed-mold-search
...
Fix Mold-search in older systems
2024-12-30 08:58:49 -06:00
OS-of-S
b9f0e0cfa3
Fixed Mold-search in older systems
2024-12-28 13:49:56 +07:00
A Thousand Ships
a1846b27ea
Improve use of `Ref.is_null/valid`
...
Use `is_null` over `!is_valid` and vice versa.
2024-12-23 16:35:02 -05:00
Naoto Kondo
b719eed725
Fix last character deletion in Wayland IME input
2024-12-22 05:52:03 +09:00
Rémi Verschelde
13274842a9
Merge pull request #100638 from Tiktalik/fixed-wayland-horizontal-scroll
...
Fix Wayland left/right scroll wheel issues.
2024-12-20 23:57:16 +01:00
Rémi Verschelde
eaed664bce
Merge pull request #100637 from bruvzg/unset_fw
...
Unset last focused window when it is destroyed.
2024-12-20 23:57:13 +01:00
Tiktalik
fb741715c1
Fixed incorrect use of vertical scroll where it should have been horizontal.
2024-12-20 00:53:10 -07:00
Pāvels Nadtočajevs
73faa509ea
Unset last focused window when it is destroyed.
2024-12-20 09:40:25 +02:00
Kiro
06efe84bca
Remove duplicate `utf8()` calls
2024-12-19 10:15:46 +01:00
Hilderin
9d2a4c03be
Embedding game process in editor
2024-12-18 17:52:42 -05:00
Rémi Verschelde
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
Fredia Huya-Kouadio
2d3f6963b2
Update the visibility for the custom templates for all platforms
...
Hide the custom template options behind the `Advanced Options` toggle
2024-12-17 13:08:47 -08:00
Rémi Verschelde
182b4741ea
Merge pull request #93479 from Repiteo/scons/better-colored-output
...
SCons: Improve colored output
2024-12-17 16:18:41 +01:00
Pāvels Nadtočajevs
293be04ec8
Implement `window_start_drag` on Windows and Linux.
2024-12-17 16:49:27 +02:00
Hilderin
4e19ab8afe
Fix connecting a signal with a double click is too difficult
...
Co-authored-by: Danil Alexeev <dalexeev12@yandex.ru>
2024-12-14 16:18:34 +03:00
HP van Braam
dbbacf3d0e
Regenerate X11 wrappers with dynload-wrapper 0.7
...
Dynload-wrapper 0.7 introduces the --include-dir option which lets us restrict
what headers are considered for generation.
In this case it removes the `XFreeThreads` Xlib function which does not
exist on Ubuntu 22.04 and older.
2024-12-12 14:57:26 +01:00
Thaddeus Crews
38775731e8
Merge pull request #99965 from Riteo/unstable-galore
...
Wayland: Add support for xdg-foreign-unstable-v2
2024-12-11 17:36:07 -06:00
Thaddeus Crews
6cbf7c77c2
Merge pull request #100150 from ArchercatNEO/homeless-export
...
Use temp dirs instead of cache dirs for export
2024-12-10 14:15:54 -06:00
Thaddeus Crews
f222cc43f3
Merge pull request #99633 from buresu/fix-wayland-keymapping
...
Fix underscore input not working with jp106 keyboard on wayland platform
2024-12-10 14:15:51 -06:00
Thaddeus Crews
d8761f2c79
SCons: Improve colored output
2024-12-10 11:44:48 -06:00
Riteo
65c28ed31d
Wayland: Add support for xdg-foreign-unstable-v2
...
The v1 version is deprecated and bound to be removed in the future from
all compositors. This patch adds a v1/v2 designator to everything
related to the protocol and prefers the v2 protocol if both are
available.
Additionally, renames the event handler to follow the Wayland interface
name, for consistency with the rest of the codebase.
2024-12-10 01:29:46 +01:00
ArchercatNEO
00a791f04e
Use temp dirs instead of cache dirs for export
...
Fixes #95897
During CI scenarios $HOME may be set to an invalid value (such as
`/var/empty`).
Using temp dirs fits better with godot's usage of these paths and is
independent from the user's $HOME.
2024-12-08 12:07:17 +00:00
Thaddeus Crews
49e033f8e2
Merge pull request #100047 from MBCX/fix-freebsd-compilation
...
Make Godot compile on `FreeBSD`
2024-12-05 14:12:11 -06:00
Thaddeus Crews
63af934d74
Merge pull request #98506 from 0xafbf/build-linux-with-spaces-in-path
...
Fix linux builds with separate debug symbols file when there is a space in the path.
2024-12-05 14:12:10 -06:00
MBCX
6bc80effbb
Make Godot compile on FreeBSD
2024-12-05 12:33:55 -04:00
Student Main
f39614aa5a
Ignore case when parse /proc/cpuinfo
2024-12-06 00:19:58 +08:00
Student Main
e0693f8ad8
Add loongarch64 support
2024-12-06 00:18:26 +08:00
Andrés Botero
becf5d7ac3
Fix linux builds with debug symbols when there is a space in the path.
2024-12-05 10:31:12 -05:00
Pāvels Nadtočajevs
84650f2018
Implement `DisplayServer.beep`.
2024-12-03 12:43:26 +02:00
Rémi Verschelde
60e1490df1
Merge pull request #99644 from bruvzg/fd_all_name
...
Change file dialog all files filter name from `All Files (*)` to `All Files (*.*)`.
2024-12-02 17:20:23 +01:00
Rémi Verschelde
1fed9cf01f
Merge pull request #99110 from bruvzg/gnome_fd
...
[Linux] Use safe IDs for native file dialog options. Show extensions in export dialog.
2024-12-02 15:51:07 +01:00
rune-scape
d58b2e879f
Get rid of easily removable uses of const_cast
2024-12-01 17:50:13 -08:00
Naoto Kondo
f367a6c231
Fix underscore input not working with jp106 keyboard on wayland platform
2024-11-30 23:40:42 +09:00
Pāvels Nadtočajevs
1d43fa9a64
Change file dialog all files filter name from `All Files (*)` to `All Files(*.*)`.
2024-11-24 20:09:05 +02:00
Trevor Davenport
0d9a705e25
Wayland: Only set selection when there is not already a source.
...
Co-authored-by: Riteo Siuga <riteo@posteo.net>
2024-11-17 16:00:24 -07:00
Pāvels Nadtočajevs
f5fad7592f
Use processed filter list for native dialogs.
2024-11-15 12:08:33 +02:00
Pāvels Nadtočajevs
ed7b4f5c4a
[Linux] Use safe IDs for native file dialog options.
2024-11-15 08:45:33 +02:00
Yevhen Babiichuk (DustDFG)
a42b8e2413
Buildsystem: Use pkg-config for miniupnpc and mbedtls
...
Miniupnpc added pkg-config files in 2.2.3 but we require 2.2.8
5a398006b9
MbedTLS added pkg-config files in 3.6.0 while we require 3.6.1
https://github.com/Mbed-TLS/mbedtls/blob/development/ChangeLog
Signed-off-by: Yevhen Babiichuk (DustDFG) <dfgdust@gmail.com>
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2024-11-13 15:25:42 +02:00
Hein-Pieter van Braam
333452d499
Regenerate X11 wrappers
...
Version 0.6 of https://github.com/hpvb/dynload-wrapper/ now supports all
of the features we need to generate the wrappers without editing them.
This replaces the hand-patched wrappers with "clean" generated ones.
2024-11-09 02:52:49 +01:00
Thaddeus Crews
bb5f390fb9
Style: Apply `clang-tidy` fixes (superficial)
...
• `modernize-use-bool-literals`, `modernize-use-nullptr`, and `readability-braces-around-statements`
2024-11-04 12:11:14 -06:00
Anish Mishra
0dfd18c84b
[DisplayServer] Add feature flag for native file dialog access to `user/res` and `options`
2024-10-30 14:13:43 +05:30
Thaddeus Crews
05a4620e88
Merge pull request #98615 from Summersay415/three-opengls-please
...
Fix fallbacks to OpenGL
2024-10-29 19:25:48 -05:00
Thaddeus Crews
b7a0971ad2
Merge pull request #97934 from adamscott/give-AThousandShips-a-break
...
[Codestyle] Set clang-format `RemoveSemicolon` rule to `true`
2024-10-29 19:25:36 -05:00
Summersay415
6d14cd6ff9
Fix fallbacks to OpenGL
2024-10-28 22:57:19 +07:00
Thaddeus Crews
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
Thaddeus Crews
17f06f6dae
Merge pull request #97555 from dustdfg/platform_methods/extract_validate_arch
...
Build System: Extract `validate_arch` helper functions
2024-10-25 13:03:48 -05:00
Adam Scott
0d350e7108
Set clang-format `RemoveSemicolon` rule to `true`
...
- Set clang-format `Standard` rule to `c++20`
2024-10-25 13:49:43 -04:00
Matias N. Goldberg
0818408db5
Fix wrong Wayland path if building with opengl3=no
...
Godot checks if there's Vulkan or GLES3 support.
If no support is found, it shows an error message.
However the code for this error message is left out when building with
opengl3=no
2024-10-12 20:20:12 -03:00
Yevhen Babiichuk (DustDFG)
7aacdaa071
Build System: Extract `validate_arch` helper function
...
Signed-off-by: Yevhen Babiichuk (DustDFG) <dfgdust@gmail.com>
2024-10-06 07:50:49 +03:00
David Snopek
256699ee31
OpenXR: Add support for Wayland on Linux
2024-10-04 11:44:05 -05:00
bruvzg
d2f3725120
Fix window_set_current_screen for maximized windows.
2024-10-03 10:38:32 +03:00
Gergely Kis
146ba4106f
Move Vulkan includes to a central godot_vulkan.h header
...
Also fixes Vulkan build problem with recent Clang.
2024-09-29 17:53:18 +02:00
BlueCube3310
2167157aaf
Replace squish with bcdec for BC decompression
2024-09-26 14:42:54 +02:00
Rémi Verschelde
a4c1804cab
Merge pull request #97483 from akien-mga/clang-format-19.1.0
...
CI: Update `clang-format` pre-commit hook to 19.1.0
2024-09-26 12:46:04 +02:00
Rémi Verschelde
a90da7e87b
Merge pull request #93058 from Repiteo/scons/scons_hints
...
SCons: Add unobtrusive type hints in SCons files
2024-09-26 12:45:21 +02:00
Rémi Verschelde
c92a6c7e27
CI: Update `clang-format` pre-commit hook to 19.1.0
2024-09-26 11:46:12 +02:00
Thaddeus Crews
9f9ee0c813
SCons: Add unobtrusive type hints in SCons files
2024-09-25 09:34:35 -05:00
David Snopek
36293a2dbf
Fix renaming nodes on X11
2024-09-25 09:05:51 -05:00
Joaquim Monteiro
c4e4810e93
Fallback to OpenGL 3 if Vulkan isn't available on Wayland
2024-09-21 06:35:35 +01:00
Rémi Verschelde
c2564f42aa
Merge pull request #97142 from SheepYhangCN/master
...
Fallback to OpenGL 3 if other rendering drivers are not supported
2024-09-20 16:06:35 +02:00
Thaddeus Crews
b37fc1014a
Style: Apply new `clang-format` changes
2024-09-20 08:09:48 -05:00
SheepYhangCN
3b839347df
Added fallback_to_opengl3
2024-09-20 06:10:05 +08:00
David Snopek
b1871cdabf
Fix project manager stealing focus on i3
2024-09-16 16:55:57 -05:00
Rémi Verschelde
4215dfdff7
Merge pull request #96973 from Riteo/pointing-the-obvious
...
Wayland: Simplify cursor code and fix custom cursors
2024-09-16 13:35:35 +02:00
Markus Sauermann
60aaa017ff
Enable Drag and Drop for SubViewports and Windows
...
Make Drag and Drop an application-wide operation.
This allows do drop on Controls in other Viewports/Windows.
In order to achieve this, `Viewport::_update_mouse_over` is adjusted to
remember the Control, that the mouse is over (possibly within nested
viewports). This Control is used as a basis for the Drop-operation, which
replaces the previous algorithm, which was only aware of the topmost
Viewport.
Also now all nodes in the SceneTree are notified about the Drag and Drop
operation, with the exception of SubViewports that are not children of
SubViewportContainers.
2024-09-15 01:06:02 +02:00
Riteo
c15cd3acc4
Wayland: Simplify cursor code and fix custom cursors
...
Initially the WaylandThread cursor code was supposed to be as stateless
as possible but, as time went on, this wasn't possible.
This expectation made the resulting API quite convoluted, so this patch
aims to simplify it substantially bot in terms of API surface and, most
importantly, in terms of actual implementation complexity.
This patch also fixes custom cursors since I accidentally changed the
mmap flags to MAP_PRIVATE some time ago. This took me hours to notice.
2024-09-13 19:08:53 +02:00
Riteo
343ea9c6f7
Wayland: clear button mask on pointer leave
...
While experimenting with the recent "extent to title" PR, I noticed that
it's not guaranteed for a "button released" event to be emitted when
the pointer leaves the main surface, leaving some buttons stuck.
Not doing this for tablets since the spec makes this behavior clear and
explicit, so we (hopefully) shouldn't have this issue there.
2024-09-10 20:53:53 +02:00
Riteo
26d89bc8e9
Wayland: make primary selection logic consistent with main clipboard
2024-09-08 16:48:41 +02:00
Rémi Verschelde
9abf86f4fe
Merge pull request #96540 from hunterkepley/fix-wayland-middlemouse-paste
...
Wayland: Fix primary clipboard handling
2024-09-04 11:16:42 +02:00
Rémi Verschelde
8eff04192b
Merge pull request #91780 from Riteo/falling-with-style
...
Improve UX when falling back between Display Servers
2024-09-04 11:16:08 +02:00
hunterkepley
7949585aad
Wayland: Fix primary clipboard handling
2024-09-03 22:39:54 -04:00
bruvzg
c273786758
Update rendering driver name on fallbacks. Fix rendering driver/method in the editor system info.
2024-09-01 18:22:40 +03:00
Rémi Verschelde
0897d830fe
Merge pull request #96204 from bruvzg/fd_no_case
...
[Linux] Make file filters case insensitive.
2024-08-30 09:59:23 +02:00
Rémi Verschelde
66dd06837c
Merge pull request #90782 from bruvzg/export_platform_extension
...
Allow adding custom export platforms using scripts / GDExtension.
2024-08-30 09:58:52 +02:00
bruvzg
ace603bcb9
[Linux] Make file filters case insensitive.
2024-08-28 11:13:47 +03:00
bruvzg
07e986f728
Allow adding custom export platforms using scripts / GDExtension.
2024-08-28 10:29:01 +03:00
bruvzg
7b4e3e021a
[Linux] Fix "all files" filter in the native file dialog.
2024-08-28 10:14:01 +03:00
Joel Winarske
6ce71f0fb0
Use wayland-egl-core.h instead of wayland-egl.h
...
-avoid use of transitive wayland include
-resolves https://github.com/godotengine/godot/issues/95830
Signed-off-by: Joel Winarske <joel.winarske@gmail.com>
2024-08-23 14:16:37 -07:00
Rémi Verschelde
568589c9d8
Merge pull request #90993 from darksylinc/matias-TheForge
...
Add debug utilities for Vulkan
2024-08-22 00:38:22 +02:00
Rémi Verschelde
78f47abe2b
Merge pull request #94022 from Riteo/a-fraction-of-the-work
...
Wayland: Switch pointer position handling to doubles
2024-08-22 00:10:31 +02:00
Matias N. Goldberg
364f916f3f
Add debug utilities for Vulkan
...
Features:
- Debug-only tracking of objects by type. See
get_driver_allocs_by_object_type et al.
- Debug-only Breadcrumb info for debugging GPU crashes and device lost
- Performance report per frame from get_perf_report
- Some VMA calls had to be modified in order to insert the necessary
memory callbacks
Functionality marked as "debug-only" is only available in debug or dev
builds.
Misc fixes:
- Early break optimization in RenderingDevice::uniform_set_create
============================
The work was performed by collaboration of TheForge and Google. I am
merely splitting it up into smaller PRs and cleaning it up.
2024-08-21 23:48:08 +02:00
Riteo
33e414cf75
Wayland: report when video drivers can't be loaded or found
...
This brings it to parity with the X11 backend.
2024-08-21 07:15:08 +02:00
Riteo
c01f9361b1
X11: Alert only when video drivers fail initialization
...
Before, they would always complain even if there was no attempt at
initializing them (e.g. because there's no X11 display).
While we're at it, this patch also adds a specific message for OpenGL ES
and rewords "OpenGLES" to "OpenGL ES" in an error, for consistency
(AFAIK we either say "GLES" or "OpenGL ES").
2024-08-21 06:31:19 +02:00
Hugo Locurcio
57141e04a6
Simplify printed file paths in the Linux/*BSD crash handler
...
This shortens the printed paths a bit when they would contain `/./`,
which is redundant (e.g. `/opt/godot/./core` becomes `/opt/godot/core`).
2024-08-18 23:36:29 +02:00
bruvzg
f72e74f395
[Windows/Linux] Check custom export templates architecture.
2024-08-16 15:52:12 +03:00
Riteo
0d1826e084
Wayland: Avoid recreating input objects on capability change
...
Before, multiple capability events would instantiate the same object
over and over as long as its bit was set. This caused issues with
hotplug and device suspension.
2024-08-09 15:42:23 +02:00
bruvzg
99b0100a06
[X11] Use motion event button state instead of async state.
2024-08-01 10:07:07 +03:00
alvinhochun
24e02d56cb
Remove unneeded call in DisplayServerX11
...
X11 does not need setting exclusive flag (it is not implemented).
Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com>
2024-07-25 17:11:15 +08:00
Alvin Wong
97aa278edb
Pass window exclusive and transient properties for subwindow creation
...
On Windows this allows to avoid having to change the owner of the window
after it has been created, which in rare circumstances may cause the
window to bug out.
2024-07-25 00:27:27 +08:00
bruvzg
52a2836861
Disable FP contraction.
2024-07-23 14:33:51 +03:00
Riteo
e307fd60d8
Wayland: Fix error spam when interacting with decorations
...
Also tried to make tablet handling a bit tidier (less whitespace).
That said I'll uniform tablet handling better once we're back in the dev
cycle.
2024-07-20 03:46:35 +02:00
Ronald Casili
3636d9dafc
Linux/X11: Fix memory leak from created screen images
...
Allocated XImages are improperly free'd with XFree.
The X11 documentation says that XImage should use
XDestroyImage to free both the image structure and
the data pointed to by the image structure.
Also fix a potential use-after-free bug.
2024-07-18 09:45:44 +02:00
Rémi Verschelde
64a11d08cc
Merge pull request #94411 from Riteo/suspending-the-right-way
...
Wayland: Check for suspended flag when unsuspending
2024-07-17 12:52:50 +02:00
Riteo
84f26a629d
Wayland: check for suspended flag when unsuspending
...
Before, we would only check for the frame flag, which is unreliable on
newer suspension-aware compositors.
2024-07-16 00:11:22 +02:00
Riteo
a852e76196
Wayland: commit surface on window creation
...
This is needed for initializing xdg_surfaces when not using libdecor.
Now the pure xdg_shell code path should work again.
2024-07-15 22:11:24 +02:00
Rémi Verschelde
49a6171319
Merge pull request #93352 from Calinou/linuxbsd-controller-no-trackpad-graphics-tablet
...
Fix trackpads and graphics tablets being recognized as controllers on Linux/*BSD
2024-07-09 16:47:04 +02:00
Riteo
2ff50119dc
Wayland: switch pointer position handling to doubles
...
This reduces even further the amount of work we have to do when scaling
and potentially improves input accuracy as now the input code is free
from any form of rounding.
2024-07-07 09:07:29 +02:00
Riteo
3e0632cbd2
Wayland: scale relative pointer motion
...
Oops, forgot to do that. Motion-dependent stuff should now work properly
when using scaled displays.
2024-07-07 08:39:53 +02:00
Hugo Locurcio
724cdffc8c
Fix trackpads and graphics tablets being recognized as controllers on Linux/*BSD
2024-07-06 00:26:39 +02:00
Rémi Verschelde
25de53e147
X11: Fix creating RenderingDevice after #93706
...
The line was removed by mistake.
2024-06-29 14:03:29 +02:00
Pedro J. Estébanez
32d9c93af3
Improve handling of rendering startup errors
2024-06-28 19:31:50 +02:00
Rémi Verschelde
ac9181c666
Merge pull request #93682 from dsnopek/fix-text-editor-find-in-files-focus-bug
...
Fix text editor stealing focus from "Find in Files" dialog on X11
2024-06-28 12:37:52 +02:00
Riteo
f27471fbd8
Wayland: minimize surface commits and limit them to the main thread
...
Before of this patch, as explained in the usual
commented-wall-of-text-longer-than-the-actual-patch-itself™, due to the
multithreaded nature of the Wayland thread, it was possible to commit a
surface while the renderer was doing stuff, which was _very_ wrong.
Initially the consequences of such a sin weren't obvious but, now that
explicit synchronization is becoming more and more common, we can't
commit a buffer randomly without basically guaranteeing a nasty, nasty
crash (and we should have avoided commits altogether in the first place
to ensure atomic surface updates).
We now only trigger a commit _in the main thread_ when low processor usage
mode is on _and_ if we know that we won't be rendering anything as, due to
its intermittent nature, it makes "legacy" (pre xdg_wm_base v6) frame
callback based suspension quite annoying.
2024-06-28 01:47:25 +02:00
David Snopek
1289298b5e
Fix text editor stealing focus from "Find in Files" dialog on X11
2024-06-27 17:27:21 -05:00
Thaddeus Crews
cc6dd8d02c
Style: Optimize `.svg` files with `svgo`
2024-06-23 08:15:19 -05:00
bruvzg
b5e3238109
[TextServer] Fix get_word_breaks and it uses.
2024-06-21 14:56:57 +03:00
Rémi Verschelde
4e01d8663e
Merge pull request #93021 from bruvzg/wl_ime
...
[Wayland] Implement IME support.
2024-06-19 10:10:09 +02:00
Hugo Locurcio
29348be0ca
Tweak warning messages related to V-Sync on OpenGL
...
- Make warnings print only once per session.
- Tweak the message to be less confusing, and mention that the issue
most likely stems from a graphics driver limitation.
2024-06-16 21:22:10 +02:00
Rémi Verschelde
e15c2e051e
Merge pull request #92663 from Riteo/holy-egl-batman
...
EGL: Use `EGL_EXT_platform_base` whenever possible
2024-06-13 17:19:17 +02:00
bruvzg
3cabf51325
[X11] Detect XWayland and disable screen capture support.
2024-06-12 10:05:17 +03:00
bruvzg
be25e60f61
[Wayland] Implement IME support.
2024-06-11 12:24:54 +03:00
Rémi Verschelde
b80e591448
Merge pull request #92843 from anniryynanen/tooltip-in-popup
...
Stop color picker tooltip from stealing input events
2024-06-10 16:11:52 +02:00
Rémi Verschelde
e52658643d
Merge pull request #92702 from kleonc/cursor_image_from_atlas_texture_fix
...
Fix creating cursor image from `AtlasTexture`
2024-06-07 23:29:57 +02:00
Anni Ryynänen
ae1e2182ec
Stop color picker tooltip from stealing input events
...
Input events go to the tooltip because it's added to `popup_list` in
DisplayServer `popup_open`. I think there's no harm in tooltips being omitted
from the list, so this commit blocks non-popup windows from being added if they
have `FLAG_NO_FOCUS` and `FLAG_MOUSE_PASSTHROUGH`.
I'm not happy with this way of detecting tooltips. It'll also catch other
windows where this behavior may or may not be wanted.
I thought about adding `FLAG_TOOLTIP`, but went with the smaller change for
now.
Fixes #79500 .
2024-06-06 20:00:05 +03:00
kleonc
91e995e704
Fix creating cursor image from AtlasTexture
2024-06-05 01:44:05 +02:00
Riteo
8f69f29694
EGL: Use EGL_EXT_platform_base whenever possible
...
This avoids any assumption from the driver, which would otherwise select
a specific platform and potentially mess up everything, resulting
usually in a display server failure.
2024-06-04 08:43:34 +02:00
bruvzg
5168647530
Use current mouse button state instead of saved values.
2024-05-31 15:50:14 +03:00
Rémi Verschelde
1dab521f2d
Merge pull request #92208 from Calinou/linuxbsd-use-nanosleep
...
Use `OS::delay_usec()` to avoid using deprecated `usleep()` on Linux
2024-05-30 11:47:51 +02:00
Rémi Verschelde
c98fef08bf
Merge pull request #89033 from bruvzg/doc_end_err
...
[DisplayServer] Add error messages and descriptions to callbacks.
2024-05-28 17:48:42 +02:00
bruvzg
714effdf07
[DisplayServer] Add error messages and descriptions to callbacks.
2024-05-28 17:36:54 +03:00
Rémi Verschelde
cc6a7b97d6
Merge pull request #92458 from bruvzg/dup_cl
...
[macOS, X11] Fix duplicate close requests.
2024-05-28 15:50:05 +02:00
Rémi Verschelde
f98c259131
Merge pull request #92353 from Riteo/you-cant-see-me
...
Wayland: Implement `is_window_transparency_available`
2024-05-28 15:49:33 +02:00
Rémi Verschelde
981ac9bfeb
Merge pull request #92324 from jwinarske/jw/wayland_sowrap
...
Linux: Enable build config `wayland=yes use_sowrap=no`
2024-05-28 15:49:16 +02:00
bruvzg
1a40cda95e
[macOS, X11] Fix duplicate close requests.
2024-05-28 09:41:04 +03:00
Riteo
9734feb449
Wayland: Implement is_window_transparency_available
2024-05-26 00:05:47 +02:00
bruvzg
fc89a0c118
Fix build with `vuklan=no` and `d3d12=no` after #91505 .
2024-05-25 21:08:50 +03:00
Joel Winarske
f06dd46eb7
Enable build config wayland=yes use_sowrap=no
...
-wayland-egl.h was missing if opengl3=yes (default)
Signed-off-by: Joel Winarske <joel.winarske@gmail.com>
2024-05-25 07:15:57 -07:00
bruvzg
628c81d2d9
[DisplayServer] Add method to check if window transparency is supported and enabled.
2024-05-23 15:23:18 +03:00
Rémi Verschelde
7870b28ed3
Merge pull request #92252 from poiati/fix-wayland-window-class
...
Properly set window class in Wayland
2024-05-23 08:59:23 +02:00
Thaddeus Crews
896b003cc8
SCons: Convert platform `get_flags` to dictionary
2024-05-22 13:53:20 -05:00
Paulo Poiati
a3769c0edc
Properly set window class in Wayland
2024-05-22 10:42:12 -03:00
Jakub Marcowski
d9f8ef68df
Update pre-commit hooks configuration to use `ruff` instead of `black`
2024-05-21 18:02:29 -05:00
Hugo Locurcio
a008896f70
Use `OS::delay_usec()` to avoid using deprecated `usleep()` on Linux
...
usleep(3) was declared obsolete in POSIX.1-2001 and removed in POSIX.1-2008.
nanosleep(2) was recommended to be used instead.
`OS::delay_usec()` internally uses `nanosleep()`.
This also uses large number separators for improved readability.
2024-05-21 17:32:40 +02:00
bruvzg
1f8e69ddec
[X11] Fallback to root window size, when Xinerama extension is available, but return zero screens.
2024-05-14 11:08:10 +03:00
Hugo Locurcio
7b678b961c
Set `execinfo=no` by default when compiling for Linux/*BSD
...
Alpine 3.17 and later no longer provide execinfo in its repositories,
making compilation impossible unless you pass `execinfo=no`.
2024-05-11 00:25:13 +02:00
Pedro J. Estébanez
fc08eca524
DisplayServer: Avoid deadlocks while issuing input events and recursive main loop iterations
2024-05-08 17:41:40 +02:00
A Thousand Ships
a0dbdcc3ab
Replace `find` with `contains/has` where applicable
...
* Replaces `find(...) != -1` with `contains` for `String`
* Replaces `find(...) == -1` with `!contains` for `String`
* Replaces `find(...) != -1` with `has` for containers
* Replaces `find(...) == -1` with `!has` for containers
2024-05-08 12:37:42 +02:00
Jakub Marcowski
7699d678c4
Fix `builtin_embree=no` build linking the wrong version of Embree
2024-05-08 00:40:45 +02:00
Rémi Verschelde
039aa28a60
Merge pull request #89574 from Riteo/scale-your-expectations-with-this-one
...
Wayland: Workaround API limitation in screen/UI scale logic
2024-05-07 21:52:44 +02:00
Riteo
1bb8199342
Wayland: Workaround API limitation in screen/UI scale logic
...
Mainly, this fixes auto UI scaling with _single-monitor_ fractional
setups (see the comment in `display_server_wayland.cpp` for more info).
This is the result of a bunch of current limitations, mainly the fact
that the UI scale is static (it's probed at startup) and the fact that
Wayland exposes fractional scales only at the window-level, by design.
The `screen_get_scale` special case should help in 99% of cases, while
the auto UI scale part will unfortunately only help with single-screen
situations, as multi-screen fractional scaling requires dynamic UI
scale changing.
2024-05-07 19:50:48 +02:00
A Thousand Ships
955d5affa8
Reduce and prevent unnecessary random-access to `List`
...
Random-access access to `List` when iterating is `O(n^2)` (`O(n)` when
accessing a single element)
* Removed subscript operator, in favor of a more explicit `get`
* Added conversion from `Iterator` to `ConstIterator`
* Remade existing operations into other solutions when applicable
2024-05-04 16:08:55 +02:00
Riteo
d3279fa552
Wayland: Add support for OpenGL ES driver
...
Everything was already there, we just had to wire it up in the display
server.
2024-05-03 05:17:13 +02:00
A Thousand Ships
308dbb8c63
[Core] Add scalar versions of `Vector*` `min/max/clamp/snap(ped)`
...
Convenience for a number of cases operating on single values
2024-05-02 10:31:13 +02:00
Rémi Verschelde
947f5a8741
Merge pull request #91247 from AThousandShips/callable_fix
...
Fix unsafe uses of `Callable.is_null()`
2024-04-29 10:10:32 +02:00
Rémi Verschelde
dee1231ce6
Merge pull request #91220 from Repiteo/scons/colorize-warn-error
...
SCons: Colorize warnings/errors during generation
2024-04-29 10:10:16 +02:00
Thaddeus Crews
e0e8ce1fc0
SCons: Colorize warnings/errors during generation
2024-04-28 16:24:48 -05:00
A Thousand Ships
31e7ee63f2
Fix unsafe uses of `Callable.is_null()`
...
`Callable.is_null()` is not equivalent to `!Callable.is_valid()` and
doesn't guarantee the call is valid.
2024-04-27 16:22:57 +02:00
Riteo
2b34ba6d4b
Wayland: Improve compositor compatibility by allowing older globals
...
Previously we pretty much hardcoded most of the globals we requested,
causing compatibility issues with certain compositors like Weston, which
support only some pretty old versions or miss some more advanced
protocols.
To put fuel on the fire, we also errored out when certain protocols
weren't available, despite us being able to boot a game just fine (but
obviously with a degraded featureset).
The solution is to simply allow all the way from version 1 to the
current latest, adding some compatibility code (such as for older
`wl_output`s or newer `wl_pointer`s).
While we're at it, this commit also fixes a few typos and naming inconsistencies
I found.
2024-04-26 15:52:10 +02:00
bruvzg
67d6be30a0
[DBus] Process file dialog callback in the main event loop instead of using deferred call.
2024-04-23 19:32:35 +03:00
Pedro J. Estébanez
c28f5901c7
Polish interaction between windowing, input and rendering
...
- Adapt GL make/release API to the current architecture.
- Fix DisplayServer being locked while dispatching input (prevent deadlocks).
2024-04-10 18:47:42 +02:00
bruvzg
bf558adcdd
[.NET] Disable output embedding on macOS, move it to the advanced options on other platforms.
2024-04-09 17:47:39 +03:00
sambler
97e95e1750
Make sysctl calls on FreeBSD
...
The OS module get_unique_id and get_processor_name rely
on linux files which don't exist on a standard FreeBSD install,
make sysctl calls to get the required data.
2024-04-08 19:18:03 +09:30
Rémi Verschelde
06f86e6e37
Merge pull request #89935 from bruvzg/dbus_conn_fix
...
[Linux/Portal] Fix incorrect DBus connection usage.
2024-04-04 14:35:31 +02:00
Rémi Verschelde
7092230df6
Merge pull request #89907 from bruvzg/nat_dlg_ftr_flags
...
[DisplayServer] Add separate feature flags for different native dialog types.
2024-03-28 10:47:15 +01:00
Rémi Verschelde
d28fb26ab0
Merge pull request #89716 from theromis/master
...
[X11] Add more details to large icon size warning
2024-03-28 10:47:08 +01:00
bruvzg
607cc27152
[Linux/Portal] Fix incorrect DBus connection usage.
2024-03-27 09:18:31 +02:00
bruvzg
dc01658ee9
[DisplayServer] Add separate feature flags for different native dialog types.
2024-03-26 15:18:06 +02:00
Rémi Verschelde
9335b83a32
Merge pull request #87831 from Riteo/bitfield-xor
...
Core: Implement a XOR operator for BitField
2024-03-26 13:45:02 +01:00
Rémi Verschelde
e2f85b4f7a
Merge pull request #89707 from AThousandShips/typo_fix
...
[Wayland] Fix typo in input code
2024-03-24 01:22:10 +01:00
Rémi Verschelde
f49efbe0e5
Merge pull request #89229 from akien-mga/main-refactor-os-exit-code
...
Refactor OS exit code to be `EXIT_SUCCESS` by default
2024-03-24 01:15:06 +01:00
Roman Vasilyev
ece8685b3b
Add icon source size to warning about "too large icon dimensions" to help faster find it
2024-03-22 12:53:57 -07:00
A Thousand Ships
79ba22a73f
Use `Vector*` component-wise `min/max/clamp` functions where applicable
2024-03-20 13:47:42 +01:00
A Thousand Ships
9aa99c0a9d
[Wayland] Fix typo in input code
2024-03-20 10:37:08 +01:00
Thaddeus Crews
3b3e2374c9
clang-tidy: Enforce `modernize-use-nullptr`
2024-03-12 10:59:53 -05:00
Rémi Verschelde
b1b0a526d8
Merge pull request #89393 from Repiteo/retire-subprocess_main
...
SCons: Remove `run_in_subprocess` & `subprocess_main` dependencies
2024-03-11 23:48:21 +01:00
Rémi Verschelde
058202e960
Merge pull request #86101 from GrammAcc/partial-fix-68305
...
[X11] Partial fix for Editor and Project Manager stealing focus on some window managers
2024-03-11 23:48:07 +01:00
Thaddeus Crews
5a6e3cbcb0
SCons: Remove `run_in_subprocess` dependency
2024-03-11 13:20:09 -05:00
Thaddeus Crews
8116d70d4b
SCons: Convert remaining `run_in_subprocess` to `env.Run`
2024-03-10 14:01:23 -05:00
Rémi Verschelde
2cb884bdbd
Merge pull request #89328 from Riteo/wayland-cursor-frame-opt
...
Wayland: Setup next cursor frame callback only if animated
2024-03-09 22:20:12 +01:00
Rémi Verschelde
3ca230df25
Merge pull request #89307 from alesliehughes/wayland_usage
...
Wayland: Stop possible Null pointer dereferences
2024-03-09 22:19:48 +01:00
Riteo
120936f78c
Wayland: Setup next cursor frame callback only if animated
...
Before, the cursor kept updating for no good reason really.
It's also a bit neater and it ever-so-slightly makes `WAYLAND_DEBUG`
logs easier to read, although they're still spammed by the window's
frame logic (which is needed).
2024-03-09 20:32:54 +01:00
Alistair Leslie-Hughes
82a052a008
wayland: Stop possible Null pointer dereferences
2024-03-09 21:50:55 +11:00
Alistair Leslie-Hughes
d3ebae5e33
wayland: Stop unreachable warning
2024-03-09 21:50:39 +11:00
Rémi Verschelde
023dcd44c1
Refactor OS exit code to be `EXIT_SUCCESS` by default
...
- `Main::setup` early exits (failure or `--help`/`--version`) now
consistently return `EXIT_FAILURE` or `EXIT_SUCCESS` on all platforms,
instead of 255 on some and a Godot Error code on others.
- `Main::start` now returns the exit code, simplifying the handling of early
failures.
- `Main::iteration` needs to explicit set the exit code in OS if it errors
out.
- Web and iOS now properly return `OS::get_exit_code()` instead of 0.
2024-03-08 23:31:24 +01:00
Rémi Verschelde
13954fc33e
Merge pull request #87452 from bruvzg/native_menu
...
Move `global_menu_*` methods to a separate `NativeMenu` class.
2024-03-06 13:16:52 +01:00
Rémi Verschelde
2ecf0eba95
Merge pull request #88520 from LinuxUserGD/execinfo
...
Disable the crash handler if `execinfo=no` scons option is set
2024-03-05 16:54:37 +01:00
Rémi Verschelde
f9ebd84b5a
Merge pull request #89178 from Riteo/gotta-have-them-all
...
Wayland: Properly report all used features
2024-03-05 14:55:36 +01:00
bruvzg
c65a667924
Move `global_menu_*` methods to a separate `NativeMenu` class.
2024-03-04 23:41:41 +02:00
Riteo
ea4be5d3df
Wayland: Properly report all used features
...
Oops, missed a few.
2024-03-04 21:08:37 +01:00
A Thousand Ships
9273106bb3
[Wayland] Fix tilt handling
2024-03-03 20:45:07 +01:00
Rémi Verschelde
6d9a529c87
Merge pull request #88970 from KoBeWi/ImageCursor2D
...
Improve `cursor_set_custom_image()` method
2024-02-29 13:54:53 +01:00
Rémi Verschelde
7434f8b4e3
Merge pull request #88959 from akien-mga/pre-commit-clang-17.0.6-black-24.2.0
...
Pre-commit: Update to clang-format 17.0.6 and black 24.2.0
2024-02-29 13:54:38 +01:00
kobewi
3aeb4a5542
Improve cursor_set_custom_image() method
2024-02-28 20:32:25 +01:00
Rémi Verschelde
3a08c646ee
Pre-commit: Update to clang-format 17.0.6 and black 24.2.0
2024-02-28 14:25:35 +01:00
Riteo
b01a36b3cd
Wayland: Restore tablet support and handle multiple tools
...
This code was already partially there, although heavily incomplete and
nowadays commented out.
It got broken after the `WaylandThread` refactor and I didn't bother to
bring it over, preferring to `#if 0` it into oblivion for the time
being as I don't have a tablet/pen which support an eraser and tilt
reporting.
This commit brings it back and adds proper multi-tool support (needed
for eraser detection) thanks to winston-yallow, who could test this code
with their more capable tablet.
2024-02-28 13:08:31 +01:00
LinuxUserGD
6307cebf37
os_linuxbsd.cpp: include `servers/rendering_server.h`
2024-02-19 01:14:30 +01:00
Rémi Verschelde
033821c595
Merge pull request #88245 from shana/simplify-mono-support-detection
...
C#: Let platforms signal if they support the mono module or not
2024-02-19 00:08:07 +01:00
LinuxUserGD
f1a677fb4c
Disable the crash handler if execinfo=no scons option is set
2024-02-18 21:42:05 +01:00